锁定老帖子 主题:Java Date 类的一个神级误差
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-24
shuaiji 写道 是啊,我比较关心当时为什么会回拨五分钟?
应该是GMT不准,现在都用UTC了吧 |
|
返回顶楼 | |
发表时间:2011-08-24
+1 w dingle
|
|
返回顶楼 | |
发表时间:2011-08-24
google tzdata package!
|
|
返回顶楼 | |
发表时间:2011-08-24
也就是说1927年的时候上海时区和北京时区统一了?
|
|
返回顶楼 | |
发表时间:2011-08-24
alexandrae2008 写道 loookto 写道 mlw2000 写道 没什么可神奇的,大家可以试一下这段代码:
public static void main(String[] args) throws ParseException { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); String str3 = "1990-04-14 23:59:59"; String str4 = "1990-04-15 01:00:01"; Date sDt3 = sf.parse(str3); Date sDt4 = sf.parse(str4); long ld3 = sDt3.getTime() /1000; long ld4 = sDt4.getTime() /1000; System.out.println(ld3); System.out.println(ld4); System.out.println(ld4-ld3); } 我觉得 String str4 = "1990-04-15 01:00:01";应该是 String str4 = "1990-04-15 00:00:01"; 才能得到你想要的。。。,不知道我说的对不对。。 夏时制问题. Locale.US是重点. 4-15 01:00:01其实是4-15 00:00:01 Locale.US不是关键,你可以把Locale.US去掉看看结果。 这个问题关键是“时区”问题 |
|
返回顶楼 | |
发表时间:2011-08-24
长见识了。。。不过我觉得对于解决实际问题无益
|
|
返回顶楼 | |
发表时间:2011-08-24
严谨治学,钦佩之至
|
|
返回顶楼 | |
发表时间:2011-08-25
java里面原来有这么多新鲜玩意儿
以前从没听说过“在1927年最后一天的午夜,标准时间被回调了5分52秒。”事件 |
|
返回顶楼 | |
发表时间:2011-08-25
forbesxyq 写道 java里面原来有这么多新鲜玩意儿
以前从没听说过“在1927年最后一天的午夜,标准时间被回调了5分52秒。”事件 是那一刻之前的国内标准时间是上海时间, 那一刻之后改了,变成北京时间,按时区划分,以及两地纬度差异,计算变更了5分52秒时间. 现在国内都是北京时间啊, 南京紫金山天文台授时的. |
|
返回顶楼 | |