2015-11-09 1 views
1

Je me demandais quelle est la meilleure façon de résoudre ce problème sur java ranch.Comment afficher le nombre de jours X depuis le 1er janvier 1970 en Java

http://www.javaranch.com/geekWatch.jsp

Merci

+0

Utilisez JodaTime ou Java 8 Time API – MadProgrammer

+0

@ Dan S'il vous plaît copier ou retraiter la pertinence parties de votre document source. StackOverflow est destiné à être une source d'autorité, de sorte que de simples liens sont désapprouvés en raison de la pourriture des liens et d'autres problèmes. –

Répondre

0

L'idée générale peut être

  1. Obtenez le nombre de secondes (pour cela comprendre l'API Date en java.) Depuis le 1er janvier 1970.
  2. Obtenez la valeur des secondes dans une journée 24 heures * 60 minutes * 60 secondes.

Maintenant, divisez la valeur obtenue en 1. par celle de 2. Cela vous donnera le nombre de jours.

+2

Il n'y a pas toujours 24 heures dans une journée ou 60 secondes dans une minute;) – MadProgrammer

+0

@MadProgrammer merci de mentionner que. – Doc

1

Utilisez soit JodaTime ou API Time Java 8 (ou une autre bibliothèque dédiée)

LocalDateTime now = LocalDateTime.now(ZoneOffset.UTC); 
LocalDateTime then = LocalDateTime.of(1970, Month.JANUARY, 1, 0, 0); 

Duration duration = Duration.between(then, now); 
System.out.println(duration.toDays()); 

qui sort

16748 
+1

Ce code peut être désactivé un jour en raison de l'ignorance du fuseau horaire. Le compte-de-époque suppose UTC. En obtenant "maintenant" en tant que "Local" sans spécifier de fuseau horaire UTC signifie que la réponse est désactivée par le nombre d'heures dans le fuseau horaire par défaut actuel. Je suggère d'utiliser 'ZonedDateTime' ou de passer' ZoneOffset.UTC' à la méthode 'now'. –