gpt4 book ai didi

java - 从没有 TimeZone 名称的 TimeZone 获取 TimeZone 偏移值

转载 作者:IT老高 更新时间:2023-10-28 20:32:53 28 4
gpt4 key购买 nike

我需要以 [+/-]hh:mm 格式保存手机的时区

我正在使用 TimeZone 类来处理这个问题,但我能得到的唯一格式如下:

PST -05:00
GMT +02:00

我宁愿不对结果进行子串化,是否可以设置任何键或选项标志以仅获取值而不是该时区的名称(GMT/CET/PST...)?

最佳答案

I need to save the phone's timezone in the format [+/-]hh:mm

不,你没有。单独的偏移量是不够的,您需要存储整个时区名称/id。例如,我住在奥斯陆,我当前的偏移量是 +02:00,但在冬天(由于 )它是 +01:00。标准时间和夏令时间之间的确切切换取决于您不想探索的因素。

所以不是存储 + 02:00(或者应该是 + 01:00?)我存储 "Europe/Oslo"在我的数据库中。现在我可以使用以下命令恢复完整配置:

TimeZone tz = TimeZone.getTimeZone("Europe/Oslo")

想知道我今天的时区偏移量是多少?

tz.getOffset(new Date().getTime()) / 1000 / 60   //yields +120 minutes

但是 12 月还是一样:

Calendar christmas = new GregorianCalendar(2012, DECEMBER, 25);
tz.getOffset(christmas.getTimeInMillis()) / 1000 / 60 //yields +60 minutes

说得够多了:存储时区名称或 id 并且每次要显示日期时,检查当前偏移量(今天)是多少,而不是存储固定值。您可以使用TimeZone.getAvailableIDs()枚举所有支持的时区 ID。

关于java - 从没有 TimeZone 名称的 TimeZone 获取 TimeZone 偏移值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11399491/

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