我需要以[+/-] hh:mm的格式保存手机的时区
我正在使用TimeZone类来处理此问题,但是我只能获得以下格式:
PST -05:00
GMT +02:00
我宁愿不对结果进行子串化,是否可以设置任何键或选项标志来仅获取值,而不获取该时区的名称(GMT / CET / PST …)?
我需要以[+/-] hh:mm的格式保存手机的时区
不,你没有。仅靠偏移量是不够的,您需要存储整个时区名称/
id。例如,我住在奥斯陆,当前偏移量为+02:00,但是在冬季(由于dst),偏移量为+01:00。标准时间和夏令时之间的确切切换取决于您不想探索的因素。
所以我没有存储+ 02:00
(或者应该是+ 01:00
?),而是存储"Europe/Oslo"
在数据库中。现在,我可以使用以下方法恢复完整配置:
TimeZone tz = TimeZone.getTimeZone("Europe/Oslo")
想知道我今天的时区偏移量是多少?
tz.getOffset(new Date().getTime()) / 1000 / 60 //yields +120 minutes
但是在十二月相同:
Calendar christmas = new GregorianCalendar(2012, DECEMBER, 25);
tz.getOffset(christmas.getTimeInMillis()) / 1000 / 60 //yields +60 minutes
可以这么说:存储时区名称或ID,并且每次要显示日期时,请检查当前偏移量(今天)是多少,而不是存储固定值。您可以TimeZone.getAvailableIDs()
用来枚举所有受支持的时区ID。
问题内容: 我知道相反。给定一个时区,我可以通过以下代码片段获取时区偏移量: 我想知道如何从时区偏移量获取时区名称。 鉴于 (以毫秒为单位; +6.00偏移) 我想得到以下任何可能的时区名称的结果: 问题答案: 用
问题内容: 我有一个遗留应用程序,我将需要补充一些数据。当前,我们有一个数据库表,用于存储美国(及其地区)邮政编码,GMT偏移量以及一个标志,用于显示该邮政编码是否使用夏时制。这是从某个免费提供商处下载的,我现在找不到源。 现在,我需要用每个邮政编码的完整奥尔森名称(例如)来补充此表,因为这似乎是将存储在数据库中的给定日期/时间(对于该购买者而言本地的)转换为对象的唯一好方法。 看一下桌子: 在另
我使用的是“亚洲/曼谷”区域id。该偏移是从格林尼治时间UTC 07:00开始的。 但是当我做了下面的事情时,设置为“01/01/1900 7:00:00.000”时不是7:00 结果就是 周一一月一日07:00:00 ICT 1900 -402 周一一月一日06:00:00 ICT 1900 -420 我想知道偏移量是否在1900年1月1日早上7点左右发生了变化,所以我在维基百科上查了一下。ht
一切都清楚一次是UTC中的日期:
我有一个格式为“2019-04-25T16:34:28-05:00”的字符串。我已经通过模式“yyyy-mm-dd't'hh:mm:ssz”通过joda-time解析了字符串。 它在DateTime中给出的输出是“2019-04-25t15:34:28.000-06:00”。
问题内容: 如何获得与C 调用给出的值相对应的Olson时区名称(例如)? 这是通过,通过符号链接或在与时间相关的系统配置文件中设置变量来覆盖的值。 问题答案: 我认为最好的选择是遍历所有pytz时区,并检查哪个匹配本地时区,每个pytz时区对象都包含有关utcoffset和tzname的信息,例如CDT,EST,可以从和获取有关本地时间的相同信息,我认为这是足以正确匹配pytz数据库中的本地时区