为什么两个毫秒时间戳(1927年)相减会得到奇怪的结果?
大家好!我是Java新手,正在学习日期和时间。我写了一个简单的代码,计算两个时间点之间的毫秒差。但结果让我震惊!
这是我的代码:
```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("毫秒差:" + diffInMillis);
}
}
```
我期望看到1000毫秒(1秒),但输出却是 **-353**!这怎么可能?难道1秒不等于1000毫秒吗?为什么差值是负数?