我需要以[+/-] 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。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)