閱讀getOffset
方法的文檔。來自日期的Millis不包含任何有關時區的信息,並且getOffset
需要millis參數才能確定此特定日期是否在夏令時內。如果是的話,你會多得一個小時。你這樣做的方式你永遠不會有所作爲,你的結果只能是-5/-4小時。
你甚至都不需要JodaTime:
TimeZone timezone = TimeZone.getTimeZone("GMT-5");
TimeZone localTimeZone = TimeZone.getDefault();
int timeZoneOffset = timezone.getOffset(System.currentTimeMillis());
int localTimeZoneOffset = localTimeZone.getOffset(System.currentTimeMillis());
int difference = Math.abs(timeZoneOffset - localTimeZoneOffset)/3600000;
如果你想JodaTime只需更換System.currentTimeMillis()
與DateTime.now().getMillis()
但我沒有看到比其他可測性的點。
對不起,也許我只是誤解,但-5是如何意外的? – MrHug
如何獲取當地時區('TimeZone.getDefault()'),做相同的計算,然後減去兩個? –
@MrHug:不,因爲我提前7小時 – Jim