我有一个时间戳,我试图把它放到一个Date
对象中,但是当我使用Calendar时,我遇到了一个奇怪的问题。我似乎能不能创建一个Date对象我想要的值:如何使用TimeZone设置日历?
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
这就是我要寻找的结果,但我担心,如果我上运行机器不在同一时区运行,我不会得到一致的行为。
都能跟得上。 SimpleDateFormat(“EEE MMM dd HH:mm:ss zzz yyyy”)会产生相同的结果。 – xirt
您是否设置了SimpleDateFormat的TimeZone?它使用JVM TimeZOne! – venergiac