96 votes

horodatage long sur LocalDateTime

J'ai un horodatage long 1499070300 (équivalent à lundi, 03 juil. 2017 16:25:00 +0800) mais lorsque je le convertis en heure locale, je reçois 1970-01-18T16: 24: 30.300

Voici mon code

 long test_timestamp = 1499070300;

LocalDateTime triggerTime =
                LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone
                        .getDefault().toZoneId());
 

158voto

Juan Points 702

Vous devez passer l'horodatage en millisecondes:

 long test_timestamp = 1499070300000L;
LocalDateTime triggerTime =
        LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), 
                                TimeZone.getDefault().toZoneId());  

System.out.println(triggerTime);
 

Résultat:

 2017-07-03T10:25
 

Ou utilisez ofEpochSecond place:

 long test_timestamp = 1499070300L;
LocalDateTime triggerTime =
       LocalDateTime.ofInstant(Instant.ofEpochSecond(test_timestamp),
                               TimeZone.getDefault().toZoneId());   

System.out.println(triggerTime);
 

Résultat:

 2017-07-03T10:25
 

6voto

Akshay Points 923

Essayez avec ce qui suit ..

 long test_timestamp = 1499070300000L;
    LocalDateTime triggerTime =
            LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp), TimeZone
                    .getDefault().toZoneId());  
 

Par défaut, 1499070300000 est int si elle ne contient pas l in end.Aussi, le temps passe en millisecondes.

2voto

Razib Points 329

Essayez avec la méthode Instant.ofEpochMilli() ou Instant.ofEpochSecond() -

 long test_timestamp = 1499070300L;
LocalDateTime date =
    LocalDateTime.ofInstant(Instant.ofEpochMilli(test_timestamp ), TimeZone
        .getDefault().toZoneId());
 

2voto

Alex Roig Points 1089

Votre problème est que l'horodatage n'est pas exprimé en millisecondes mais en secondes à partir de la date de l'époque. Multipliez par 1000 votre horodatage ou utilisez les Instant.ofEpochSecond() .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X