タイムゾーンを設定したり、タイムゾーンの名前を取得したり、UTCとの時差を求めたり。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//例:アメリカロサンゼルス TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles"); //夏時間 //tz.getDisplayName():アメリカ太平洋標準時 //tz.getDisplayName(tz.inDaylightTime(new Date()), TimeZone.SHORT):GMT-07:00 //tz.getDisplayName(tz.inDaylightTime(new Date()), TimeZone.LONG):アメリカ太平洋夏時間 //tz.getOffset(System.currentTimeMillis()) / (1000 * 60 * 60):-7 //夏時間以外 //tz.getDisplayName():アメリカ太平洋標準時 //tz.getDisplayName(tz.inDaylightTime(new Date()), TimeZone.SHORT):GMT-08:00 //tz.getDisplayName(tz.inDaylightTime(new Date()), TimeZone.LONG):アメリカ太平洋標準時 //tz.getOffset(System.currentTimeMillis()) / (1000 * 60 * 60):-8 Calendar cal = Calendar.getInstance(); //タイムゾーン指定 cal.setTimeZone(tz); //以降、calで指定したタイムゾーンの日付時刻が取得できる |
#TimeZone.inDaylightTime(new Date()), TimeZone.SHORT)は「GMT-07:00」形式だったり「JST」「PST」形式だったりするので、UTCとの時差は#TimeZone.getOffset(long time)から算出するべし。
#追記
Androidのソースを検索して、Android標準のタイムゾーン名を取得する。
検索サービスで「timezones」で検索すると言語別タイムゾーン名の定義ファイル(timezones.xml)や定義ファイルを読み込むクラス(ZonePicker.java)が見つかるので参考に。