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

Collection et Stream Java Discussion :

Récupérer des infos d'une date


Sujet :

Collection et Stream Java

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut Récupérer des infos d'une date
    Bonjour à tous,

    En fait, j'ai un nombre de millisecondes, et j'aimerai en tirer le nombre d'heure/minute/seconde/millisecondes...

    J'ai essayé en passant par un GregorianCalendar:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    GregorianCalendar remindDate = new GregorianCalendar();
    remindDate.setTimeInMillis(milliSecondsRemind);
     
    String hour = "" + remindDate.get(Calendar.HOUR);
    String minute = "" + remindDate.get(Calendar.MINUTE);
    String second = "" + remindDate.get(Calendar.SECOND);
    String millis = "" + remindDate.get(Calendar.MILLISECOND);
    Après avoir suivit les valeur avec le débogueur, ça rajoute 1h de trop...

    J'peux créer un objet Date en spécifiant le nombre de millisecondes à la construction, mais j'arrive pas à récupérer le nombre d'heure/minute/seconde/millis avec ça...

    Et il doit bien y avoir un truc de Java optimisé pour le calcul et permettant de ne pas s'embêter avec des divisions, des modulos etc... nan?

    Je vous remercie

    A bientôt

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2004
    Messages
    503
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 503
    Par défaut
    pensez à la

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Heu... ben c'est bon j'ai trouvé, faut prendre l'heure avec la constante HOUR_OF_DAY, et pas HOUR

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    ben nan merde ça va pas :s

    GregorianCalendar remindDate = new GregorianCalendar();
    remindDate.setTimeInMillis(milliSecondsRemind);

    String hour = "" + remindDate.get(Calendar.HOUR_OF_DAY);
    String minute = "" + remindDate.get(Calendar.MINUTE);
    String second = "" + remindDate.get(Calendar.SECOND);
    String millis = "" + remindDate.get(Calendar.MILLISECOND);

    Lorsque le nombre de millisecondes et à 3599968 (soit casiment 1h), j'obtiens:
    heure = 1,
    minute = 59,
    secondes = 59,
    millisecondes = 968
    soit casiment 2h (1h de trop)

    Que je mette HOUR ou HOUR_OF_DAY ça fait pareil pour ça...

    Y'a pas un truc avec du GMT là dedant?

    J'ai pas trouvé l'info dans la FAQ...

    Merci beaucoup

    A bientôt

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 26
    Par défaut
    En utilisant Calendar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import java.util.Calendar;
     
    public class Test
    {
    	public static void main(String[] args)
    	{
    		Calendar cal = Calendar.getInstance();
    		cal.setTimeInMillis(3599968);
     
    		String hour = "Heures: " + cal.get(Calendar.HOUR);
    		String minutes = "Minutes: " + cal.get(Calendar.MINUTE);
    		String seconds = "Secondes: " + cal.get(Calendar.SECOND);
    		String milliseconds = "Millisecondes: " + cal.get(Calendar.MILLISECOND);
     
    		System.out.println(hour + "\n" + minutes + "\n" + seconds + "\n" + milliseconds);
    	}
    }
    J'ai ça en sortie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Heures: 0
    Minutes: 59
    Secondes: 59
    Millisecondes: 968
    C'est ce que tu veux non ?

    EDIT:

    En fait je viens d'essayer avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    GregorianCalendar cal = new GregorianCalendar();
    		cal.setTimeInMillis(time);
     
    		String hour = "Heures: " + cal.get(Calendar.HOUR);
    		String minutes = "Minutes: " + cal.get(Calendar.MINUTE);
    		String seconds = "Secondes: " + cal.get(Calendar.SECOND);
    		String milliseconds = "Millisecondes: " + cal.get(Calendar.MILLISECOND);
    et j'ai le même résultat qu'avant, donc ça devrait fonctionner normalement

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Ben nan, j'ai fait copier/coller de ta classe, j'ai testé, et j'me retrouve toujours avec 1h en plus...

    Alors là je comprends carrément pas du tout :s

    Ca peut pas venir de l'heure du système vu qu'on remet en dur l'heure du Calendar...

    Est-ce que ça peut venir d'une configuration d'Eclipse? Quoi que... je l'ai téléchargé, décompressé, et j'ai touché à rien dans les options...

    Nan là... Mistère....

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Sinon j'ai un Windows pas très officiel, mais c'est basé sur l'OS français, modifié par des français... Ca m'étonnerai que ça soit une config du GMT

    J'crois que je vais faire les divisions... Mais ça m'intrigue c't'histoire

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 26
    Par défaut
    Pour voir si c'est pas Eclipse, enregistre la classe via notepad puis compile là et essaye avec la commande.

    Petite précision, moi je suis sous Gentoo donc je sais pas commet ça réagi sous Windows.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Bah là... j'ai compilé en ligne de commande, y'a pas eu d'erreur, ça cré bien le .class, mais pour exécuter, ça affiche

    Exception in Thread main java.lang.NoClassDefFoundError: C:\Test

  10. #10
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    En meme temps si la classe Calendar vous fait des noises il vous est toujours possible de passer par des divisions et des modulo successifs puisque contrairement aux dates, le temps lui est constant (comme il a deja ete plusieurs fois indique par le passe dans ce forum pour une question du genre "Comment on transforme temps en ms vers un nombre d'heures, minutes, seconds ?"). Faire des recherches avant de poster.

    Ainsi tu peux sans trop de probleme te definir les constantes suivantes quelque part :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public static final long MILLISECOND = 1;
    public static final long SECOND = 1000*MILLISECOND;
    public static final long MINUTE = 60*SECOND;
    public static final long HOUR = 60*MINUTE;
     
    // A partir d'ici verifier avec les standards internationaux et/ou de votre boulot*.
    public static final long DAY = 24*HOUR;
    public static final long WEEK = 7*DAY;
    Le calcul est donc tres simple. Ca vous evitera de creer une instance de Calendar qui est un objet plutot lourd.

    *Pour certains l'annee est constituee de 365.qqchose jours, pour d'autres c'est le jour qui est compose de 24.qqchose heures. Mais bon au final tout le monde retombe sur ses pattes avec les annees bisextiles.
    Ex: ici pour les besoins des simuls scientifiques on considere qu'un mois c'est a peu pres 30.5 jours.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  11. #11
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 900
    Billets dans le blog
    54
    Par défaut
    Ou alors modifier la variable CLASSPATH pour y inclure le repertoire courant. Si tant est que le fichier Test.class (verifier que la casse est correcte) se trouve dans le repertoire courant.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Bon bah je vais faire avec les division.

    Merci

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

Discussions similaires

  1. Récupérer des info dans une page html
    Par DORBRITZ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 06/03/2008, 11h13
  2. Récupérer des infos par une variable session
    Par nebil dans le forum Langage
    Réponses: 4
    Dernier message: 03/09/2006, 23h02
  3. Récupérer des infos sur une page externe
    Par Horrigan dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/07/2006, 14h46
  4. bdd, et aussi récupérer des infos d'une autre form
    Par stayka dans le forum C++Builder
    Réponses: 10
    Dernier message: 19/07/2006, 00h18
  5. [ADO.Net][C#] Comment récupérer des infos d'une table SQL ?
    Par lamojuli dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/01/2006, 16h00

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