2

我正在尝试以以下格式导入表示日期的给定字符串:

2007-03-12T00:00:00.000+01:00 

现在要创建一个新的日期对象,我使用 Joda Library 使用:

DateTime date = new DateTime(year, month, day, hour, minute, second);

但是,我想在这里确保两件事:

  • 如何在此日期时间上下文中处理 GTM +1?
  • 无论如何,我不必解析这个字符串,并且可以直接用这个字符串初始化日期对象?
4

3 回答 3

6
DateTime date = DateTime.parse("2007-03-12T00:00:00.000+01:00");

正如其他答案中提到的那样,偏移量应该根据文档与字符串的其余部分一起解析。

于 2012-09-03T03:31:08.047 回答
2

您可以使用 解析该日期字符串SimpleDateFormat,然后将该日期传递给 Joda 类:

String dateStr = "2007-03-12T00:00:00.000+01:00";
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = sdf.parse( dateStr.replaceAll(":(?=..$)", "")); // remove last colon

请注意,您必须删除最后一个冒号,以便偏移量是RFC 822 时区,例如+0100,我使用String.replaceAll()

于 2012-09-03T03:41:38.393 回答
-1

您的两个问题都可以通过阅读课程文档来回答

时区由类处理。寻找采用时区参数的构造函数。

是的,您可以使用字符串创建 DateTime 对象。DateTime.parse(String)可用于执行此操作。如果需要,还有另一种方法可用于解析自定义日期格式。

于 2012-09-03T02:32:41.267 回答