我正在使用JODA格式化日期类型:2012-01-05T08:00:00.000Z(2012年1月5日),并试图将其转换为Java日期。LocalDate.toDate()返回不准确的日期
以下是该我走在这个阶段的步骤:
使用DateTimeFormatter做初步格式:
DateTimeFormatter jodaParser = DateTimeFormat .forPattern(inputDateWhichIsAString);
它提供必要的时间转换成一个LOCALDATE的区域(UTC)
LocalDate localDate = jodaParser .withZone(DateTimeZone.UTC) .parseDateTime(inputDateWhichIsAString).toLocalDate();
使用LOCALDATE的检索Java的Date对象
return localDate.toDate();
但是当我应该期望返回的日期是:2012年1月5日,我所得到的是1970年一月1日我的印象是,下JODA照顾Java Date对象已知的这些问题。
我在这里做错了什么 - 或者你们中的任何人有过类似的问题并且知道解决方法吗?
感谢 拉雅
编辑:
首先感谢迈克尔。
因此,这是对我之前的片段的改进,它确保我获得正确的日期 - 换句话说就是解决方案。
//Make sure you use HH instead of hh if you are using 24 hour convention. I use this convention since my date format is: 2012-01-05T08:00:00.000Z
DateTimeFormatter jodaParser =
DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZZ");
LocalDate date = jodaParser.withZone(DateTimeZone.UTC).parseDateTime
(inputDateWhichIsAString).toLocalDate();
return date.toDate();
干杯 拉杰特
+1对于残酷的命名,约定blubWhichIsAString :) – poitroae 2012-01-05 10:48:21
@迈克尔:原谅我的无奈有:d – 2012-01-05 12:21:07