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

Langage Java Discussion :

Temps avec millisecondes


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 112
    Points : 111
    Points
    111
    Par défaut Temps avec millisecondes
    Bonjour, est-ce qu'avec le package java.time il est possible d'obtenir un temps avec les millisecondes sans passer par un pattern

    Avec ce code...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    LocalTime t = LocalTime.now(ZoneId.systemDefault());
    DateTimeFormatter f = DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM).withZone(ZoneId.systemDefault());
    ...j'obtiens 23:59:59, avec FormatStyle.LONG j'obtiens 23:59:59 CET, et avec FormatStyle.FULL j'obtiens 23:59:59 heure d’Europe centrale.

    J'ai également essayé...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f = f.withResolverFields(ChronoField.HOUR_OF_DAY, ChronoField.MINUTE_OF_HOUR, ChronoField.SECOND_OF_MINUTE, ChronoField.MILLI_OF_SECOND);
    ...mais ça n'a aucun effet.

    Avec DateTimeFormatter.ISO_TIME j'obtiens les microsecondes 23:59:59.999999, en bidouillant on peut récupérer les millisecondes, mais avec l'arrondi ça peut se répercuter jusqu'aux heures et devenir compliqué, donc est-ce qu'il n'existe pas un moyen moins tiré par les cheveux ?

    Une idée

    NB: La balise CODE du forum ne peut pas être en ligne, ah la la

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    Ben si... Un moyen moins tiré par les cheveux c'est un pattern.

    Il y a aussi formater la date sans les millisecondes, puis ajouter les millisecondes, c'est toujours moins tiré par les cheveux.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 112
    Points : 111
    Points
    111
    Par défaut
    Ben non... un pattern ce n'est pas neutre, avec la méthode ofPattern(String, Locale) on pourrait s'attendre à ce qu'elle bouche les trous avec la convention locale (ajouter les deux points), mais avec un appel du type "mm HH ss SSS", Locale.getDefault() le résultat est 59 23 59 999, donc on se demande à quoi sert la locale. Bien sûr en bidouillant on peut le faire facilement, mais j'aurais voulu trouver un moyen plus propre. Vu la complexité du package ça doit sûrement exister mais là je sèche...

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Mais, c'est pas logique que la Locale soit impliquée là-dedans.

    Il n'y a pas, que je sache, de manière culturellement acceptée dans les différents pays, d'afficher un temps avec des millisecondes. Si quelque chose le fait, il le fait à sa manière, en général avec des deux-points et un point, et tout cela n'a rien à voir avec le concept de localisation.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 112
    Points : 111
    Points
    111
    Par défaut
    En balayant tous les formateurs par la réflexion il semblerait que les millisecondes ne soient pas vraiment à la mode effectivement.
    Donc la meilleure solution que j'ai trouvé est de remplacer les microsecondes par les millisecondes dans le texte formaté, ce qui fonctionne également avec des zéros non significatifs et évite de traiter avec les séparateurs même s'ils semblent toujours rester identiques. Je n'ai pas besoin d'une telle précaution pour mon usage mais tant qu'à faire...
    Merci pour les réponses.

Discussions similaires

  1. Conversion de temps avec millisecondes
    Par JakBaptiste dans le forum MATLAB
    Réponses: 6
    Dernier message: 12/04/2017, 10h52
  2. mesurer le temps avec precision
    Par xantares dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 11/03/2006, 11h22
  3. Comment lancer 2 serveur X en même temps avec Xorg ?
    Par narmataru dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 10/01/2006, 18h55
  4. Formater un temps en millisecondes
    Par TheDarkLewis dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/09/2004, 18h50
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

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