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
No answers yet.
Faça login para deixar uma resposta
Blogs