次のコード セグメントは、Joda-Time API を使用して日付をフォーマットし、UTC ゾーンに変換します。
DateTimeFormatter dateTimeFormatter=DateTimeFormat.forPattern("dd-MMM-yyyy hh:mm:ss aa");
DateTime dateTime = dateTimeFormatter.parseDateTime("15-Oct-2013 11:34:26 AM").withZone(DateTimeZone.UTC);
System.out.println(dateTime);
次の日付が期待どおりに正確に表示されます。
2013-10-15T06:04:26.000Z
しかし、この日付をjava.sql.Timestamp
そのように変換すると、
System.out.println(new Timestamp(dateTime.getMillis()));
次の日付が表示されます。
2013-10-15 11:34:26.0
これは、与えられたのと同じ日付/時刻を意味します。タイムゾーン UTC は無視されているようです。
Timestamp
日付を UTC に正しく変換するにはどうすればよいですか?