簡體   English   中英

Java8 LocalDateTime解析錯誤

[英]Java8 LocalDateTime parsing error

我試圖使用java.time解析以下時間戳字符串03-feb-2014 13:16:31 java.time但它拋出了一個錯誤。 這是我的代碼。

String timestamp = "03-feb-2014 13:16:31";

DateTimeFormatter format;
DateTimeFormatterBuilder formatBuilder = new DateTimeFormatterBuilder();
formatBuilder.parseCaseInsensitive();   
formatBuilder.append(DateTimeFormatter.ofPattern("dd-MMM-YYYY HH:mm:ss"));
format = formatBuilder.toFormatter();

LocalDateTime localdatetime = LocalDateTime.parse(timestamp, format);

但是我收到以下錯誤。

Exception in thread "main" java.time.format.DateTimeParseException: Text '03-feb-2014 13:16:31' could not be parsed: Unable to obtain LocalDateTime from TemporalAccessor: {DayOfMonth=3, MonthOfYear=2, WeekBasedYear[WeekFields[SUNDAY,1]]=2014},ISO resolved to 13:16:31 of type java.time.format.Parsed
    at java.time.format.DateTimeFormatter.createError(DateTimeFormatter.java:1920)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1855)
    at java.time.LocalDateTime.parse(LocalDateTime.java:492)
    at com.target.util.CntrlmProcessor.main(CntrlmProcessor.java:24)
Caused by: java.time.DateTimeException: Unable to obtain LocalDateTime from TemporalAccessor: {DayOfMonth=3, MonthOfYear=2, WeekBasedYear[WeekFields[SUNDAY,1]]=2014},ISO resolved to 13:16:31 of type java.time.format.Parsed
    at java.time.LocalDateTime.from(LocalDateTime.java:461)
    at java.time.format.Parsed.query(Parsed.java:226)
    at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)

從錯誤看起來,庫已經能夠解析字符串,因為它從時間戳中分離出所有字段,但似乎有一些我缺少的東西。

我試圖僅解析時間戳的時間部分而且工作得很好。

如果你在模式中使用yyyy而不是YYYY ,那么你給出的代碼就可以了。 YYYY是“基於周的年份”,通常僅在您指定周數和星期幾時使用(例如YYYY-ww-EEE )。 這非常罕見。

請注意,即使只是“年”也有yyyyuuuu - yyyy是“年代的時代”(它總是非負面的 - 在格里高利歷中始終是正面的)而uuuu是一種“無年代” - 例如,5BCE是-4歲無年。 如果您不需要在共同時代之前處理日期(或其他日歷系統中的日期),您可能不需要擔心這一點。

我還建議將代碼重寫為:

DateTimeFormatter format = new DateTimeFormatterBuilder()
    .parseCaseInsensitive()
    .appendPattern("dd-MMM-yyyy HH:mm:ss")
    .toFormatter();

......只是為了簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM