论坛首页 Java企业应用论坛

Java Date 类的一个神级误差

浏览 12649 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2011-08-24  
shuaiji 写道
是啊,我比较关心当时为什么会回拨五分钟?



应该是GMT不准,现在都用UTC了吧
0 请登录后投票
   发表时间:2011-08-24  
+1  w dingle
0 请登录后投票
   发表时间:2011-08-24  
google tzdata package!
0 请登录后投票
   发表时间:2011-08-24  
也就是说1927年的时候上海时区和北京时区统一了?
0 请登录后投票
   发表时间: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去掉看看结果。
这个问题关键是“时区”问题
0 请登录后投票
   发表时间:2011-08-24  
长见识了。。。不过我觉得对于解决实际问题无益
0 请登录后投票
   发表时间:2011-08-24  
严谨治学,钦佩之至
0 请登录后投票
   发表时间:2011-08-25  
java里面原来有这么多新鲜玩意儿 

以前从没听说过“在1927年最后一天的午夜,标准时间被回调了5分52秒。”事件
0 请登录后投票
   发表时间:2011-08-25  
forbesxyq 写道
java里面原来有这么多新鲜玩意儿 

以前从没听说过“在1927年最后一天的午夜,标准时间被回调了5分52秒。”事件

是那一刻之前的国内标准时间是上海时间, 那一刻之后改了,变成北京时间,按时区划分,以及两地纬度差异,计算变更了5分52秒时间.
现在国内都是北京时间啊, 南京紫金山天文台授时的.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics