黑马程序员技术交流社区

标题: 关于日期时间计算问题 [打印本页]

作者: 一只文字    时间: 2013-8-13 16:58
标题: 关于日期时间计算问题
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str3 = "1900-01-31 00:00:00";
String str7 = "1940-01-31 00:00:00";
Date sDt3 = sf.parse(str3);
Date sDt7 = sf.parse(str7);
long ld3 = sDt3.getTime() /1000;
long ld7 = sDt7.getTime() /1000;
计算出来后
ld7 - ld3  = 1262217952 (秒)
但是两者的日期差为14609,而14609*24*60*60=1262217600.为什么有出入?
因此采用ld3+14609*24*60*60,Date(),sf.format()后得到的结果就为1940-01-30 23:54:08,请问采用getTime()取到值后+一定的秒数得到一个新的时间,应该怎么处理呢?如果str7的时间为1920年的话算出来的时间却是对的,为什么,是哪里的小细节没有注意到还是有什么特殊的处理
上面这种实现方式是哪里不对呢?
测试发现1927-12-31 00:00:00与1928-01-01 00:00:00只差一天24*60*60=86400秒,但是通过getTime()取值差却为86752,与上面值一致,就是说在27年到28年时发生了变化。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2