2014-02-22 70 views
1

在Java中如何使用Joda-Time獲取日期和時間使用時區。服務器正在運行UTC +0300。但我需要使用UTC +0530,即印度標準時間。我需要使用這樣的java joda-time獲取日期時間

DateTimeZone zone = DateTimeZone.forID("Asia/Calcutta"); 

可是如何才能讓日期和時間格式爲:dd-MM-yyyy hh:mm:ss

任何幫助是極大的讚賞。

+3

http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormatter.html#withZone(org.joda.time.DateTimeZone) – PopoFibo

回答

1

你需要一個DateTimeFormatter

private static final DateTimeFormatter FORMATTER 
    = DateTimeFormat.forPattern("dd-MM-yyyy hh:mm:ss"); 

然後你就可以.print()DateTime

// Returns a String 
FORMATTER.print(new DateTime(zone)); 
1

其他的答案是局部的。這裏有更多信息。

要調整時區,您可以:

  • 分配了不同的時區,創建一個新的DateTime實例。
  • 讓格式器在創建日期時間的字符串表示形式時應用時區。
DateTime dateTimeMoscow = new DateTime(DateTimeZone.forID("Europe/Moscow")); 
DateTime dateTimeIndia = dateTimeMoscow.withZone(DateTimeZone.forID("Asia/Kolkata")); 
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MM-yyyy hh:mm:ss").withZone(DateTimeZone.forID("Asia/Kolkata")); 
String output = formatter.print(dateTimeMoscow); // Formatter adjusts zone from Moscow to Kolkata.