我正在使用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