Javaの内部化-UTC
UTCは、協定世界時の略です。これは時間標準であり、世界中で一般的に使用されています。すべてのタイムゾーンは、UTCをオフセットとして比較的計算されます。たとえば、デンマークのコペンハーゲンでの時間はUTC + 1であり、UTC時間に1時間を加えたものを意味します。これは夏時間とは無関係であり、データベースに日付と時刻を保存するために使用する必要があります。
タイムゾーンの変換
次の例では、さまざまなタイムゾーンの変換を紹介します。時刻と時刻をミリ秒単位で出力します。最初は変化し、2番目は同じままです。
IOTester.java
import java.text.ParseException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class I18NTester {
public static void main(String[] args) throws ParseException {
Calendar date = new GregorianCalendar();
date.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
date.set(Calendar.HOUR_OF_DAY, 12);
System.out.println("UTC: " + date.get(Calendar.HOUR_OF_DAY));
System.out.println("UTC: " + date.getTimeInMillis());
date.setTimeZone(TimeZone.getTimeZone("Europe/Copenhagen"));
System.out.println("CPH: " + date.get(Calendar.HOUR_OF_DAY));
System.out.println("CPH: " + date.getTimeInMillis());
date.setTimeZone(TimeZone.getTimeZone("America/New_York"));
System.out.println("NYC: " + date.get(Calendar.HOUR_OF_DAY));
System.out.println("NYC: " + date.getTimeInMillis());
}
}
出力
次の結果が出力されます。
UTC: 12
UTC: 1511956997540
CPH: 13
CPH: 1511956997540
NYC: 7
NYC: 1511956997540
利用可能なタイムゾーン
次の例では、システムで使用可能なタイムゾーンを示します。
IOTester.java
import java.text.ParseException;
import java.util.TimeZone;
public class I18NTester {
public static void main(String[] args) throws ParseException {
String[] availableIDs = TimeZone.getAvailableIDs();
for(String id : availableIDs) {
System.out.println("Timezone = " + id);
}
}
}
出力
次の結果が出力されます。
Timezone = Africa/Abidjan
Timezone = Africa/Accra
...
Timezone = VST
印刷