|
||||||||||||||||||||||
|
ホーム > 日時・タイムゾーンの扱い > カレンダーとタイムゾーンの利用 カレンダーとタイムゾーンの利用ここでは java.util.Calendar クラスと java.util.TimeZone クラスを利用する方法を示します。 「タイムゾーン (TimeZone)」にて記載したように、日本のタイムゾーン ID が "Asia/Tokyo" を利用可能であるとすると、 非常に簡単にタイムゾーン毎のローカル時刻取得可能です。 このテストに先立ち念のため書いておきますと、私はロサンゼルスに住んでおりますので、デフォルトでアメリカの西海岸の時間がとれてますので、 お間違えのないようご注意ください。 カレンダーによる日付と時刻の取得java.util.Calendar クラスを利用すると簡単に、直感的にわかる形で、日時の情報を取得できます。 DateTime では 1900 年からの年数であったり、ちょっと面倒がありましたね。 import java.util.Calendar;
import java.util.TimeZone;
public class DateTest1 {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
// Los Angeles
displayTime(c);
}
protected static void displayTime(Calendar c){
System.out.println(c.getTimeZone().getDisplayName());
System.out.println(
c.get(Calendar.YEAR)
+ "_" + (c.get(Calendar.MONTH) + 1)
+ "_" + c.get(Calendar.DAY_OF_MONTH)
+ "_" + c.get(Calendar.HOUR_OF_DAY)
+ "_" + c.get(Calendar.MINUTE)
+ "_" + c.get(Calendar.SECOND)
);
}
}
この実行結果発議の通りです。 Pacific Standard Time 2011_9_27_22_0_20 直感的、といっても一点注意が必要で月 (month) は 0 始まりです。従って、1月は 0 です。 タイムゾーンの切り替えの動作確認それではタイムゾーンを日本 "Asia/Tokyo" に切り替えてどのように動作するか確認しましょう。 import java.util.Calendar;
import java.util.TimeZone;
public class DateTest1 {
public static void main(String[] args){
Calendar c = Calendar.getInstance();
// Los Angeles
displayTime(c);
// Japan
TimeZone tz = TimeZone.getTimeZone("Asia/Tokyo");
c.setTimeZone(tz);
displayTime(c);
}
protected static void displayTime(Calendar c){
System.out.println(c.getTimeZone().getDisplayName());
System.out.println(
c.get(Calendar.YEAR)
+ "_" + (c.get(Calendar.MONTH) + 1)
+ "_" + c.get(Calendar.DAY_OF_MONTH)
+ "_" + c.get(Calendar.HOUR_OF_DAY)
+ "_" + c.get(Calendar.MINUTE)
+ "_" + c.get(Calendar.SECOND)
);
}
}
java.util.TimeZone クラスの getTimeZone メソッドに "Asia/Tokyo" を渡しているラインで、日本のタイムゾーンの TimeZone オブジェクトを取得しています。 Pacific Standard Time 2011_9_27_22_3_2 Japan Standard Time 2011_9_28_14_3_2 この結果から、確かに同じ時刻でのアメリカ西海岸時刻と日本の時刻が取得されたことがわかります。 ホーム > 日時・タイムゾーンの扱い > カレンダーとタイムゾーンの利用 |
|
© 2010 Java 入門 |
|||||||||||||||||||