gpt4 book ai didi

java - 通过时区偏移量获取TimeZone

转载 作者:行者123 更新时间:2023-12-01 07:18:46 25 4
gpt4 key购买 nike

我需要一个时区,并且有时区偏移。

例如,我有偏移量= 14400000。我想要一个时区(任何地方,任何城市)。我可以在SimpleDateFormat中使用该时区,以便为该时区打印正确的时间。

This is what I found(我重构了一点):

private TimeZone getTimeZone(int offset) {
final TimeZone UTC_TIME_ZONE = TimeZone.getTimeZone("UTC");
String[] ids = TimeZone.getAvailableIDs(offset);
if (ids == null || ids.length == 0) {
return UTC_TIME_ZONE;
}

String matchingZoneId = ids[0];
return TimeZone.getTimeZone(matchingZoneId);
}


我得到:

sun.util.calendar.ZoneInfo[id="Asia/Baku",offset=14400000,dstSavings=0,useDaylight=false,transitions=68,lastRule=null]


我不喜欢这种方法,因为 TimeZone将调用此处的 ZoneInfoFile getZoneIds(int var1)。这是反编译的代码。

 public static String[] getZoneIds(int var0) {
ArrayList var1 = new ArrayList();
String[] var2 = getZoneIds();
int var3 = var2.length;

for(int var4 = 0; var4 < var3; ++var4) {
String var5 = var2[var4];
ZoneInfo var6 = getZoneInfo(var5);
if (var6.getRawOffset() == var0) {
var1.add(var5);
}
}

var2 = (String[])var1.toArray(new String[var1.size()]);
Arrays.sort(var2);
return var2;
}


您可以看到,它遍历现有对象以构建一个区域ID数组,而我只需要一个!

我的问题是,有没有更有效的方法?我只需要任何时区ID或给定偏移量的单个时区。

最佳答案

您可以使用SimpleTimeZone为任何偏移量构造一个TimeZone实例:

new SimpleTimeZone(offset, "My TimeZone");

关于java - 通过时区偏移量获取TimeZone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48282034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com