为什么减去这两次(1927年)会产生奇怪的结果?

为什么减去这两次(1927年)会产生奇怪的结果?

如果我运行以下程序,它将两个日期字符串分别引用1秒,并对它们进行比较:

public static void main(String[] args) throws ParseException {
    SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
    String str3 = "1927-12-31 23:54:07";  
    String str4 = "1927-12-31 23:54:08";  
    Date sDt3 = sf.parse(str3);  
    Date sDt4 = sf.parse(str4);  
    long ld3 = sDt3.getTime() /1000;  
    long ld4 = sDt4.getTime() /1000;
    System.out.println(ld4-ld3);}

产出如下:

353

为什么ld4-ld31(正如我所期望的,从时间的一秒差别来看),但是353?

如果我将日期更改为1秒后的时间:

String str3 = "1927-12-31 23:54:08";  String str4 = "1927-12-31 23:54:09";

然后ld4-ld3将是1.


Java版本:

java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Dynamic Code Evolution Client VM (build 0.2-b02-internal, 19.0-b04-internal, mixed mode)

Timezone(`TimeZone.getDefault()`):

sun.util.calendar.ZoneInfo[id="Asia/Shanghai",
offset=28800000,dstSavings=0,
useDaylight=false,
transitions=19,
lastRule=null]

Locale(Locale.getDefault()): zh_CN


梦里花落0921
浏览 435回答 3
3回答

呼唤远方

这种奇怪的寓意是:尽可能使用UTC中的日期和时间。如果无法在UTC中显示日期或时间,请始终指示时区.如果无法在UTC中要求输入日期/时间,则需要显式指定的时区。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java