3

Outlook から iCal イベントを受信する際に、タイムゾーンを長い形式で指定しています。

DTSTART;TZID=Eastern Standard Time:20120521T180000

つまり、TimeZone.getDisplayName() から得られるものです。

Eastern Standard Timeその ( ) から TimeZone オブジェクトに移動するにはどうすればよいですか?

4

2 に答える 2

2

まあ、それはきれいではありませんが、これが私が最終的に得たものです(基本的に、一致を検索して、利用可能なTZを繰り返しますgetDisplayName()):

// 注: vTZID は、iCalendar 形式で表示されるタイムゾーン ID です // たとえば、「東部標準時」。// 通常のメソッド (つまり、TimeZone.getTimeZone()) で TZ が見つからない場合にのみ、これを行います。

boolean foundTZ=false;
for (String availId : TimeZone.getAvailableIDs()){
  if (vTZID.trim().equalsIgnoreCase(TimeZone.getTimeZone(availId).getDisplayName())){
    vTimezone = TimeZone.getTimeZone(availId);
    foundTZ = true;
    break;
  }
}
于 2012-05-22T23:30:52.337 に答える
0

オルソンタイムゾーンを見たことがありますか?Joda でも利用可能: http://joda-time.sourceforge.net/timezones.html

于 2012-05-22T11:14:19.417 に答える