java joda-time获取日期时间

时间:2014-02-22 10:29:18

标签: java jodatime

在Java中,如何使用Joda-Time来获取使用时区的日期和时间。服务器正在运行UTC +0300。但我需要使用UTC +0530,即印度标准时间。我需要像这样使用

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

但是如何以这种格式获取日期和时间:dd-MM-yyyy hh:mm:ss

非常感谢任何帮助。

2 个答案:

答案 0 :(得分: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 :(得分: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.