簡體   English   中英

轉換日期格式:Java中的轉換錯誤?

[英]Converting date format: conversion error in Java?

我正在嘗試將此日期轉換為其他格式。 不幸的是,它無法成功解析日期並正確保留所有信息。

2017年06月12日07:14:56.656PM至2017-12-06 19:14:56.656

如果我嘗試解析輸入日期

LocalDateTime.parse("06-Dec-2017 07:14:56.656PM",
        DateTimeFormatter.ofPattern("D-MMM-yyyy HH:mm:ss.SSSa"));

我收到以下錯誤-不確定是什么意思?

Exception in thread "main" java.time.format.DateTimeParseException: Text '06-Dec-2017 07:14:56.656PM' could not be parsed: Conflict found: Field MonthOfYear 1 differs from MonthOfYear 12 derived from 2017-01-06
    at java.time.format.DateTimeFormatter.createError(Unknown Source)
    at java.time.format.DateTimeFormatter.parse(Unknown Source)
    at java.time.LocalDateTime.parse(Unknown Source)
    at com.cordys.coe.alf.logger.DBLogger.main(DBLogger.java:366)
Caused by: java.time.DateTimeException: Conflict found: Field MonthOfYear 1 differs from MonthOfYear 12 derived from 2017-01-06
    at java.time.format.Parsed.crossCheck(Unknown Source)
    at java.time.format.Parsed.crossCheck(Unknown Source)

如果嘗試

System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")
        .format((new SimpleDateFormat("DD-MMM-yyyy HH:mm:ss.SSSa")
                .parse("06-Dec-2017 07:14:56.656PM"))));

它給出了以下令人困惑的信息,並且可能不正確。 2017-01-06 07:14:56:656

你有兩個問題

  1. D應該是d

D代表一年中的某天

d代表月中的某天

  1. HH應該是hh

H代表小時(0-23)

h表示上午的時鍾小時(1-12)

請將D-MMM-yyyy HH:mm:ss.SSSad-MMM-yyyy hh:mm:ss.SSSa

有關更多信息,請檢查oracle docs

暫無
暫無

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

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