以下のコードに従って、指定されたタイムゾーンで指定された dateTime に Date オブジェクトを作成しています。
注: jvm のタイムゾーンは設定していません。ただし、このコードを別の Linux サーバーのタイムゾーンでテストしています。
String date = "20121225 10:00:00";
String timeZoneId = "Asia/Calcutta";
TimeZone timeZone = TimeZone.getTimeZone(timeZoneId);
DateFormat dateFormatLocal = new SimpleDateFormat("yyyyMMdd HH:mm:ss z");
//This date object is given time and given timezone
java.util.Date parsedDate = dateFormatLocal.parse(date + " "
+ timeZone.getDisplayName(false, TimeZone.SHORT));
if (timeZone.inDaylightTime(parsedDate)) {
// We need to re-parse because we don't know if the date
// is DST until it is parsed...
parsedDate = dateFormatLocal.parse(date + " "
+ timeZone.getDisplayName(true, TimeZone.SHORT));
}
jvm
サーバーがISTで実行されている場合、
parsedDate
オブジェクトの動作が異なり
ます30:00 GMT jvm サーバーが EST で実行されている場合
parsedDate.getTime() -- 1356422400000
parsedDate.toString() -- Tue Dec 25 03:00:00
GMT の EST 2012 --- 12/25/2012 08:00 :00 GMT
私の両方のシステム時間は同期しています
Mon Dec 24 10:30:04 EST 2012
Mon Dec 24 21:00:48 IST 2012
両方のマシンで同じ GMT 時間を取得することを期待しています。
ここで何が問題だったのですか?