Avatar ·

Por que subtrair milissegundos da época (1927) dá um resultado estranho?

Olá a todos! Sou novo em Java e me deparei com um problema muito estranho ao trabalhar com datas. Estou tentando calcular a diferença em milissegundos entre dois momentos em 1927, mas o resultado não é o que espero. Aqui está meu código: ```java import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; public class StrangeDate { public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); // Data 1: 1927-12-31 23:54:07 Date date1 = sdf.parse("1927-12-31 23:54:07"); // Data 2: 1927-12-31 23:54:08 Date date2 = sdf.parse("1927-12-31 23:54:08"); long diff = date2.getTime() - date1.getTime(); System.out.println("Diferença em milissegundos: " + diff); // Espero: 1000 (1 segundo) // Obtenho: 353 (cerca de 0,35 segundos!) } } ``` Eu espero