JodaTime:如何从DateTime对象获取ISO格式的时间?

时间:2016-01-11 16:10:34

标签: android datetime jodatime

我使用Joda获得DTO:

dateTimeObj = new DateTime();

我想将此DTO转换为ISO格式的格式化字符串:

2016-03-06T11:30:00-05:00

我尝试使用:

dateTimeObj = new DateTime().toDateTimeISO();

但没有运气。

我怎么能以正确的方式做到这一点?

3 个答案:

答案 0 :(得分:1)

不推荐使用

toDateTimeISO(),请使用toDateTime() http://joda-time.sourceforge.net/apidocs/org/joda/time/Instant.html

此外:

DateTime dt = new DateTime();
DateTimeFormatter fmt = DateTimeFormat.forPattern("MMMM, yyyy");
String str = fmt.print(dt);

请参阅此处的模式语法: http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html

答案 1 :(得分:0)

首先,您需要使用LocalDateTime而不是DateTime来访问您格式的时区。

使用DateTimeFormatter,其格式如图表here中所定义。

您想要的格式为" YYYY-MM-DDTHH:mm:ss-ZZZZ"。

答案 2 :(得分:0)

您可以使用IsoDateTimeFormat.dateTimeNoMillis()获取没有毫秒部分的格式:

 DateTime dt = new DateTime();
 DateTimeFormatter fmt = ISODateTimeFormat.dateTimeNoMillis();
 String str = fmt.print(dt);