A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一只文字 中级黑马   /  2013-8-13 16:58  /  1172 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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年时发生了变化。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马