首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.util.calendar -> Calendar.add()与夏令

java.util.calendar -> Calendar.add()与夏令
EN

Stack Overflow用户
提问于 2012-12-05 18:57:41
回答 1查看 1.4K关注 0票数 3

我的服务器安装了“美国/圣保罗”TimeZone,今年10月21日,夏令开始了。

为什么我要这么做

代码语言:javascript
复制
public static void main(String[] args){

    Calendar d1 = new GregorianCalendar(2012, 9, 19, 0, 0, 0);

    Calendar d2 = new GregorianCalendar(2012, 9, 22, 0, 0, 0);

    while(d1.compareTo(d2) <= 0){
        System.out.println("\nBEFORE: " + d1.getTime());
        d1.add(Calendar.DAY_OF_MONTH, 1);
        System.out.println("AFTER: " + d1.getTime());
    }


}

我有这个输出

之前:2012年10月19日星期五:00:00

后:2012年10月20日星期六:

之前:2012年10月20日星期六:

后:10月21日太阳01:00:00 BRST 2012

前:10月21日太阳01:00:00 BRST 2012

后:10月22日星期一01:00:00 BRST 2012

当我做这个d1时,添加(Calendar.DAY_OF_MONTH,1)只是一天,而不是小时,对吗?我怎么能避免这一点,并保持原来的时间,我不想使用GMT-3,我需要现在是DST。

谢斯

EN

回答 1

Stack Overflow用户

发布于 2014-10-08 19:00:58

由于Sao_paulo在第21天没有午夜,那么21点将从凌晨1点开始。对于第22天,你加一天,然后它保持凌晨1,等等。为了使之正确,你应该从19天开始计算,而不是在前一天计算。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13730438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档