オブジェクトに入れようとしているタイムスタンプがありDate
ますが、Calendar を使用すると奇妙な問題が発生します。必要な値で 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
これは私が探している結果ですが、同じタイム ゾーンで実行されていないマシンで実行している場合、一貫した動作が得られないことが懸念されます。