加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – “2017-9-21 23:59”发生了什么?

发布时间:2020-12-15 05:14:41 所属栏目:Java 来源:网络整理
导读:我用了一个压延器,每次加一分钟.但在“2017-9-21 23:59”日期发生了一些奇怪的事情.这个日期回来了一个小时.它的行为就像日期节省时间,但保存时间日期不得发生. 这是我的代码和输出: GregorianCalendar fromCalendar = new GregorianCalendar(2017,8,21,22,
我用了一个压延器,每次加一分钟.但在“2017-9-21 23:59”日期发生了一些奇怪的事情.这个日期回来了一个小时.它的行为就像日期节省时间,但保存时间日期不得发生.

这是我的代码和输出:

GregorianCalendar fromCalendar = new GregorianCalendar(2017,8,21,22,58);

    for (int i = 0; i < 120; i++) {
        System.out.println(fromCalendar.get(Calendar.YEAR) + "-"
                + (fromCalendar.get(Calendar.MONTH) + 1) + "-" +   fromCalendar.get(Calendar.DAY_OF_MONTH) + " "
                + fromCalendar.get(Calendar.HOUR_OF_DAY) + ":" + fromCalendar.get(Calendar.MINUTE) + "      ");
        fromCalendar.add(Calendar.MINUTE,1);
    }

输出:

.
.
.
2017-9-21 23:58     
2017-9-21 23:59     
2017-9-21 23:0      
2017-9-21 23:1      
2017-9-21 23:2  
.
.
.

有什么简单的观点我误解了吗?

解决方法

根据 the TimeAndDate.com DST page,世界上只有一个国家的DST转换发生在2017/09/22 00:00伊朗

因此,您必须使用the timezone for Iran: Asia/Tehran.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读