Bootstrap

偏移量用java怎样计算时间_Java TimeZone偏移量

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

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

所以我不存储02:00(或应该是01:00?)我在我的数据库中存储“欧洲/奥斯陆”。现在我可以使用以下方式恢复完整配置:

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。

;