JAVA Calendar.set(Calendar.HOUR_OF_DAY, 0) 在第一个夏令时

标签 java calendar dst

我在 cal.set(Calendar.HOUR_OF_DAY, 0); 方面遇到问题。 如果我使用第一个 DST 天,此方法将返回前一天 23:00:00,而不是当天 00:00:00。

我的时区是巴西/东部

我的代码:

final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a z");
Date day = getFirstDayDST();
Calendar cal = Calendar.getInstance();
cal.setTime( day );
System.out.println( sdt.format( cal.getTime() ) );
cal.set( Calendar.HOUR_OF_DAY, 0);
System.out.println( sdt.format( cal.getTime() ) );

输出:

"18/10/2015 12:00:00 PM GMT-02:00"
"17/10/2015 11:00:00 PM GMT-03:00"

但我预计:

"18/10/2015 12:00:00 PM GMT-02:00"
"18/10/2015 00:00:00 PM GMT-02:00" OR "18/10/2015 01:00:00 PM GMT-02:00"

如何解决这个问题?

最佳答案

错误是您打印了“day.getTime()”。您必须打印 cal.getTime() ;)

关于JAVA Calendar.set(Calendar.HOUR_OF_DAY, 0) 在第一个夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33415565/

相关文章:

angularjs - 纯 AngularJS 中的日历

太平洋/斐济的 Php 夏令时问题

java - 如何连接任意两个特定线程?

java - 如何在不同线程中运行同一个类的不同方法?

java - Android Spinner - 如何删除单选按钮?

swift - 获取一天中的所有时间(以日期格式)从上午 9 点到晚上 11 点,并保存在 Swift 的数组中

wpf - 显示选定的日历日期

vb.net - 每月的小时数,有夏令时

c# - 为什么 .NET 不能正确转换时间?

java - Java 中方法声明的约定