为什么减去纪元毫秒(1927年)会得到奇怪的结果?
大家好!我是Java新手,在处理日期时遇到了一个非常奇怪的问题。我试图计算1927年两个时间点之间的毫秒差,但结果出乎我的意料。
这是我的代码:
```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"));
// 日期1: 1927-12-31 23:54:07
Date date1 = sdf.parse("1927-12-31 23:54:07");
// 日期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("毫秒差: " + diff);
// 预期: 1000 (1秒)
// 实际: 353 (约0.35秒!)
}
}
```
我期望