我无法获得特定时区的准确时间,例如“EST”,通常是 GMT-5,但现在它遵循夏令时,即 GMT-4。但在 java 和 android 中都显示了 1 小时的差异(它只需要 GMT-5,而不是 GMT-4)。但在点网中它显示正确。我的问题与如何在 java 中使用 Timezone 处理夏令时相同 但我只能使用 TimeZone 的短形式,例如(“EST”、“IST”)。请您提供一些建议以根据特定的短格式时区获得准确的时间(如“EST”......)
谢谢你。
我无法获得特定时区的准确时间,例如“EST”,通常是 GMT-5,但现在它遵循夏令时,即 GMT-4。但在 java 和 android 中都显示了 1 小时的差异(它只需要 GMT-5,而不是 GMT-4)。但在点网中它显示正确。我的问题与如何在 java 中使用 Timezone 处理夏令时相同 但我只能使用 TimeZone 的短形式,例如(“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。我还没有尝试过。)