特定时区的日历在 Android 和 Java 中不显示夏令时



我无法获得特定时区的准确时间,例如"EST",通常是GMT-5,但现在它遵循夏令时,即GMT-4。但是在java和android中都显示了1小时的差异(只需要GMT-5,而不是GMT-4)。但是在点网中,它显示正确。我的问题与如何在 java 中使用时区解决夏令时相同但我只能使用时区的缩写形式,例如("EST","IST")。请您给出一些建议,以根据特定的短格式时区(如"EST")获得准确的时间......

谢谢。

这个问题没有完美的答案,因为你基本上得到了不完整的信息。但是,这里有一些代码来查找使用缩写"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。我还没有尝试过。

相关内容

  • 没有找到相关文章

最新更新