我在 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/