汇总Java日期时出现意外结果

当使用它们的方法java.util.Date.getTime()对java Date对象求和时,我得到了意外的结果。


这是示例代码:


System.out.println(d1.toString()); 

System.out.println(d2.toString());

System.out.println(new Date(d1.getTime() + d2.getTime()));

这是输出:


Mon Mar 20 00:00:00 CET 2017

Thu Jan 01 10:44:00 CET 1970

Mon Mar 20 09:44:00 CET 2017

我希望CET 2017年3月20日星期一10:44:00而不是CET 2017年3月20日星期一09:44:00。


我想念什么?


慕莱坞森
浏览 144回答 3
3回答

慕村9548890

纪元是1970-01-01 00:00:00 UTC,而CET则是UTC +1。这是以下过程:input: 2017-03-20 00:00:00 CET —--> 2017-03-19 23:00:00 UTCinput: 1970-01-01 10:44:00 CET —--> 1970-01-01 09:44:00 UTC// change inputs to the long millis to epoch and sum them2017-03-19 23:00:00 UTC + 1970-01-01 09:44:00 UTC = 2017-03-20 08:44:00 UTCoutput: 2017-03-20 08:44:00 UTC —--> 2017-03-20 09:44:00 CET
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java