IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Convertir un temps "java" en temps "delphi"


Sujet :

Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut Convertir un temps "java" en temps "delphi"
    Bonjour,

    J'avoue que le titre est peu évocateur et assez incorrect.
    Voilà l'idée.

    Dans un de mes programmes en Java j'ai pour but d'écrire un fichier dont l'entête contient la date du fichier (ce n'est pas un format de fichier de mon invention et je ne peux pas le changer). La date dans l'entête de ce fichier doit être écrite en double afin qu'un autre programme puisse l'interpréter via le TDateTime de Delphi.

    Ma question est donc : comment peut-on passer d'une date obtenue en millisecondes (sur un variable de type long) à une date sur une variable de type double interprétable par TDateTime ?

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    La question est qu'est ce que représente ce double?
    Le nombre de secondes? minutes? jours? et a partir de quelle date?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut
    La partie entière représente le nombre de jours écoulés depuis le 30/12/1899 et la partie fractionnaire elle représente le nombre d'heure depuis minuit.

  4. #4
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    dans ce cas là le code suivant devrais fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    double toTDateTime(Date javaDate){
        long decale = javaDate.getTime() - new Date(1899, 11, 30).getTime();
        return (double)(decale / (1000*60*60*24);
    }
    On décale le timestamp java pour avoir le nombre de secondes depuis la date d'origine delphi, étant donné que le 0 de java correspond au temps unix(01/01/1970).
    Et on divise par le nombre de milli-secondes par jour.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 13
    Par défaut
    Merci pour ta réponse. Je me suis basé sur ton code pour en faire ceci. Apparemment ça marche bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private static double toTDateTime(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(1899, 11, 30);
     
        long convert = date.getTime() - calendar.getTimeInMillis();
     
        return ((double) convert / (double) (1000 * 60 * 60 * 24));
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Projet terminé] 3D temps réel JAVA et PDF
    Par info2d3d dans le forum Projets
    Réponses: 0
    Dernier message: 19/07/2009, 03h00
  2. reagir en fonction du temp en java
    Par master_och dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2008, 19h07
  3. [Java 3D] 3D temps reel ?
    Par Mucsy dans le forum API graphiques
    Réponses: 2
    Dernier message: 28/02/2007, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo