一秒之差的结果有点让人意外

之前朋友给我出了一道题,就是用Java程序计算"1900-12-31 23:54:16"和"1900-12-31 23:54:17"的时间差是多少。我一看说不就是一秒吗,他说不对。你们用自己的编译器试试打印出的结果是多少,是不是相差的一秒钟。

我想,应该大家的答案应该不是完全一样的。因为,他之前用他的编译器打印出来的是344。而我用自己的编译器打印出来就是1。

我以为是我注释掉的那一行代码的问题,因为我见他有那么一行代码。于是我也加上那一行,试了一下结果还是1。

于是我找了几个朋友帮我试了一下并询问了一下他们的jdk版本。和我预期的一样,和jdk版本有关系,1.8以下全是正常的一秒。

于是我也翻了一下我的1.8版本的jdk出来,诶,厉害了,我的还是打印的1。这就让我懵逼了,看来这个问题不是在jdk的大版本中做的改动啊。我于是上官网下载了最新版本的jdk,果然就变成了他给我的结果。以下是我几个版本的测试结果:

至于为什么会有这样的结果,好像说是一个历史原因,统一时区发现时间上面有所差异,于是做了统一。这种说法是否真的也不太清楚,如果真的为什么现在才做出jdk调整,或者说jdk改出了问题。这就相当于一个奇闻趣事吧。开心就好,如果谁发现了关于这一点的解释记得告诉我一下,我也挺感兴趣的。

一秒之差的结果到底是多少

如果有更多奇闻轶事可以和我交流,我的个人微信公众号:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值