1

一般的にGMT-5である「EST」などの特定のタイムゾーンの正確な時刻を取得することはできませんが、現在はGMT-4であるサマータイムに従っています. しかし、Java と android ではどちらも 1 時間の差を示しています (GMT-4 ではなく GMT-5 のみが必要です)。しかし、ドットネットでは正しく表示されます。私の問題は、Java で Timezone を使用して夏時間に取り組む方法と同じですが 、("EST","IST") などの短い形式の TimeZone しか使用できません。特定の短い形式のタイム ゾーン ("EST" など) に基づいて正確な時刻を取得するための提案をお願いします。

ありがとうございました。

4

1 に答える 1

2

基本的に不完全な情報を持っているため、これに対する完全な答えはありません。ただし、省略形「EST」を使用するサポートされているすべてのタイムゾーンを見つけるためのコードを次に示します (米国ロケールでは夏時間以外)。

import java.util.*; 

public class Test {
  public static void main(String[] args) {
    for (TimeZone zone : getMatchingTimeZones("EST")) {
      System.out.println(zone.getID());
    }
  }

  public static List<TimeZone> getMatchingTimeZones(String target) {
    List<TimeZone> list = new ArrayList<TimeZone>();
    for (String id : TimeZone.getAvailableIDs()) {
      TimeZone zone = TimeZone.getTimeZone(id);
      String actual = zone.getDisplayName(false, TimeZone.SHORT, Locale.US);
      if (actual.equals(target)) {
        list.add(zone);
      }
    }
    return list;
  }
}

そのリストから希望する実際のタイム ゾーンに到達する方法は、あなた次第です。(また、これが Android で動作するかどうかもわかりません。試したことはありません。)

于 2012-05-27T08:27:41.107 に答える