時間の国際化
時間の国際化を行う (ニューヨークやパリの時間を知る) 場合 java.util.TimeZone を使用します。
TimeZone を DateFormatter や Calendar に設定する事により、
Asia/Tokyo と異なったタイムゾーンの時間を取得する事が可能になります。
使用可能な TimeZone の一覧
TimeZone.getAvailableIDs();
で使用可能な TimeZone の ID の一覧が取得出来ます。
時間取得例 (DateFormat使用時)
Date now = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
// 東京
TimeZone tokyo = TimeZone.getTimeZone("Asia/Tokyo");
df.setTimeZone(tokyo);
System.out.println(tokyo.getID() + " [" + df.format(now) + "]");
// ニューヨーク
TimeZone newYork = TimeZone.getTimeZone("America/New_York");
df.setTimeZone(newYork);
System.out.println(newYork.getID() + " [" + df.format(now) + "]");
// パリ
TimeZone paris = TimeZone.getTimeZone("Europe/Paris");
df.setTimeZone(paris);
System.out.println(paris.getID() + " [" + df.format(now) + "]");
出力結果
Asia/Tokyo [2005/01/18 13:25:37]
America/New_York [2005/01/17 23:25:37]
Europe/Paris [2005/01/18 5:25:37]
時間取得例 (Calendar 使用時)
Calendar cal = Calendar.getInstance(TimeZone
.getTimeZone("America/New_York"));
// 表示
System.out.println("年:" + cal.get(Calendar.YEAR));
System.out.println("月:" + cal.get(Calendar.MONTH) + 1);
System.out.println("日:" + cal.get(Calendar.DATE));
System.out.println("時:" + cal.get(Calendar.HOUR_OF_DAY));
System.out.println("分:" + cal.get(Calendar.MINUTE));
System.out.println("秒:" + cal.get(Calendar.SECOND));
出力結果
年:2005
月:01
日:17
時:23
分:36
秒:49
|