我无法获得特定时区的准确时间,例如"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。我还没有尝试过。