2014-10-27 87 views
1

給定一個DateTimeZone,我能得到的名稱和時區的ID是這樣的:轉換DateTimeZone爲UTC偏移

DateTimeZone timeZone = new DateTimeZone("America/Chicago"); 

// Prints "America/Chicago" 
System.out.println(timeZone.getID()); 

// Prints "CDT" (Since it is daylight savings time now) 
System.out.println(timeZone.getNameKey(DateTimeUtils.currentTimeMillis())); 

// Prints "Central Daylight Time" 
System.out.println(timeZone.getName(DateTimeUtils.currentTimeMillis())); 

全部都是偉大的,但我真的想獲得的時區爲UTC偏移。在這種情況下,UTC偏移看起來像-05:00

我該如何與喬達時間做到這一點?

+0

我認爲[這](http://stackoverflow.com/a/19632076/2055998)回答你的問題。 – 2014-10-27 21:34:44

+2

[Time Zone!= Offset](http://stackoverflow.com/tags/timezone/info) – 2014-10-27 21:40:23

+0

http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTimeZone.html#UTC – 2014-10-27 21:40:41

回答

1

純喬達的解決方案是這樣的:

int offsetMillis = 
    DateTimeZone.forID("America/Chicago").getOffset(DateTimeUtils.currentTimeMillis()); 
DateTimeZone zone = DateTimeZone.forOffsetMillis(offsetMillis); 
String utcOffset = zone.toString(); 
System.out.println(utcOffset); // output: -05:00 
0

您可以使用Date,SimpleDateFormatTimeZone來實現你想要的。 通過設置你想要的TimeZone來製作SimpleDateFormat。然後用它來格式化new Date();