我无法得到一个特定时区的准确时间,比如"EST“,一般是GMT-5,但现在它遵循的是夏时制,即GMT-4。但在java和android中,两者都显示了1小时的差异(只需要GMT-5,而不是GMT-4)。但在网点网中却显示得很正确。我的问题与How to tackle daylight savings using Timezone in java相同,但我只能使用简短的TimeZone形式,如“EST”、“IST”。请你提出一些建议,根据一个特定的短期时区(如“EST”.)获得准确的时间。
谢谢。
发布于 2012-05-27 08:27:41
这是没有完美答案的,因为你的信息基本上是不完整的。但是,这里有一些代码可以查找所有使用缩写"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系统。我还没试过)
https://stackoverflow.com/questions/10772554
复制相似问题