我試圖創建一個對象LOCALDATE使用JodaTime庫,從輸入字符串。該字符串來自我無法控制的數據庫。出生日期輸入看起來正是這樣的:JodaTime從字符串創建與LOCALDATE模式
1963-07-19T00:00:00.000+0000
我只想1963-07-19
部分,我不想時間部分。所以,我試圖執行一個格式化像這樣:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
,然後創建對象LOCALDATE像這樣:
LocalDate dob = formatter.parseLocalDate(dateOfBirth);
但我得到的錯誤:
Invalid format: "1963-07-19T00:00:00.000+0000" is malformed at "T00:00:00.000+0000"
我也嘗試格式化器像這樣:
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'hh:mm:ss.SSSZ");
但後來我得到錯誤:
Cannot parse "1963-07-19T00:00:00.000+0000": Value 0 for clockhourOfHalfday must be in the range [1,12]
和想法如何實現我想要的?
完善,這個工作。我只是擔心數據庫會在以後回吐一些更奇怪的東西,並崩潰編。手指交叉。 – Richard
@richard如果需要,jodatime允許您定義多個解析器。參見[這裏](http://stackoverflow.com/questions/3307330/using-joda-date-time-api-to-parse-multiple-formats)。 –