为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梦里花落0921 2019-06-05 13:38:42
为什么减去这两次(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-ld3不1(正如我所期望的,从时间的一秒差别来看),但是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
查看完整描述

3 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

这种奇怪的寓意是:

  • 尽可能使用UTC中的日期和时间。
  • 如果无法在UTC中显示日期或时间,请始终指示时区.
  • 如果无法在UTC中要求输入日期/时间,则需要显式指定的时区。


查看完整回答
反对 回复 2019-06-05
  • 3 回答
  • 0 关注
  • 434 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信