41 votes

comment trouver les secondes depuis 1970 en java

Je travaille avec un projet en temps réel où j'ai l'obligation de trouver des secondes depuis le 1er janvier 1970. J'ai utilisé le code suivant pour trouver les secondes mais donne un résultat erroné. Le code est le suivant.

 public long returnSeconds(int year, int month, int date) {
    Calendar calendar1 = Calendar.getInstance();
    Calendar calendar2 = Calendar.getInstance();
    calendar1.set(1970, 01, 01);
    calendar2.set(year, month, date);
    long milliseconds1 = calendar1.getTimeInMillis();
    long milliseconds2 = calendar2.getTimeInMillis();
    long diff = milliseconds2 - milliseconds1;
    long seconds = diff / 1000;
    return seconds;
}

Dans ce qui précède à la place de year,month,date je passe 2011,10,1 et j'obtiens

 1317510000

mais la bonne réponse est

 1317427200

Toute aide à ce sujet m'est très utile.

66voto

mizo Points 3783

Les méthodes Calendar.getTimeInMillis() et Date.getTime() renvoient toutes les deux des millisecondes depuis le 1.1.1970.

Pour l'heure actuelle, vous pouvez utiliser :

 long seconds = System.currentTimeMillis() / 1000l;

56voto

singh2005 Points 909

Depuis Java8 :

 java.time.Instant.now().getEpochSecond()

11voto

ruslan Points 5754

C'est Date.getTime() .

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