我有一个试图放入Date
对象的时间戳,但是当我使用日历时,我遇到了一个奇怪的问题。我似乎无法使用我想要的值创建 Date 对象:
public static void main(String args[]){
Date today = new Date();
int hour = 4, min=0, sec=0, ms=64;
Calendar cal = GregorianCalendar.getInstance();
cal.clear();
cal.setTimeZone(TimeZone.getTimeZone("EDT"));
cal.setTime(today);
cal.set(Calendar.HOUR_OF_DAY,hour);
cal.set(Calendar.MINUTE,min);
cal.set(Calendar.SECOND,sec);
cal.set(Calendar.MILLISECOND,ms);
System.out.println("Time is: "+cal.getTime());
}
这会产生:
Time is: Mon Jan 13 23:00:00 EST 2014
这不是我要找的结果。
但是,如果我注释掉“setTimeZone”方法调用,我会得到以下结果:
Time is: Tue Jan 14 04:00:00 EST 2014
这是我正在寻找的结果,但我担心如果我在不在同一时区运行的机器上运行,我将无法获得一致的行为。