Avatar ·

Pourquoi la soustraction de deux timestamps en millisecondes (année 1927) donne-t-elle un résultat étrange ?

Bonjour à tous ! Je suis débutant en Java et je me familiarise avec les dates et les heures. J'ai écrit un code simple qui calcule la différence entre deux instants en millisecondes. Mais le résultat m'a tout simplement choqué ! Voici mon code : ```java import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class StrangeDateDifference { public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); Date date1 = sdf.parse("1927-12-31 23:54:07"); Date date2 = sdf.parse("1927-12-31 23:54:08"); long diffInMillis = date2.getTime() - date1.getTime(); System.out.println("Différence en millisecondes : " + diffInMillis); } } ``` Je m'attendais à voir 1000 millisecondes (1 seconde), mais à la sortie j'obtiens **-353** ! Comment est-ce possible ? Une seconde n'est-elle pas égale à 1000 millisecondes ? Pourquoi la différence est-elle négative ?