我知道有這麼多的帖子與這個問題有關,但他們都沒有能夠澄清我的疑問。Joda時間兩個不同TimeZone之間的UTC值不匹配
我需要從全球常量(UTC)毫秒值中保存用戶的DateTime值,這樣它將有助於轉換到不同的時區,因爲我用兩個不同的時區做了一些測試,以下是我試過的:
隨着時區 - PDT(GMT - 7)
DateTime dateTime = new DateTime(2013, 07, 04, 1, 19, 22);
String format = "yyyy-MM-dd HH:mm:ss Z";
int offsetMinutes = (dateTime.getZone().getOffset(dateTime)/1000)/60;
log.info(" Current Timezone => "+dateTime.getZone()+", OffSet => "+offsetMinutes);
log.info(" dateTime => "+dateTime.toString(format)+" => "+dateTime.getMillis());
,並與同一日期時間在UTC
DateTime utcDateTime = dateTime.withZone(DateTimeZone.UTC);
offsetMinutes = (utcDateTime.getZone().getOffset(utcDateTime)/1000)/60;
log.info(" Current Timezone => "+utcDateTime.getZone()+", OffSet "+offsetMinutes);
log.info(" dateTime => "+utcDateTime.toString(format)+" => "+utcDateTime.getMillis());
下面是結果我得到:
IN PDT(GMT - 7)
Current Timezone => America/Los_Angeles, OffSet => -420 (-7)
dateTime => 2013-07-04 01:19:22 -0700 => 1372925962000
Current Timezone => UTC, OffSet 0
dateTime => 2013-07-04 08:19:22 +0000 => 1372925962000
在GMT +5:30
Current Timezone => Asia/Kolkata, OffSet => 330 (+5:30)
dateTime => 2013-07-04 01:19:22 +0530 => 1372880962000
Current Timezone => UTC, OffSet 0
dateTime => 2013-07-03 19:49:22 +0000 => 1372880962000
和問題是,
使用PDT時區,爲什麼本地毫秒和UTC毫秒相同? (與IST時區相同)
爲什麼來自Two Different TimeZone的UTC值不同?
如果UTC應該是全局常量,值應該是相同的兩個不同的時區吧?
有人可以澄清我的疑問,我做錯了嗎?
請任何建議或澄清,將是很有益
感謝 拉梅什
對不起,這不清楚;輸出對我來說似乎完全合乎邏輯... – fge
它是完美的,但我只是有一個疑問 –