簡體   English   中英

如何將 dd/MM/yyyy HH:mm:ss 轉換為 offsetdatetime - java

[英]How to convert dd/MM/yyyy HH:mm:ss to offsetdatetime - java

我升級到:

DateTimeFormatter dtf = DateTimeFormatter.ofPattern ("dd/MM/yyyy HH:mm:ss");
org.threeten.bp.LocalDateTime _date = org.threeten.bp.LocalDateTime.parse ("10/19/2020 18:00:47", dtf);

並得到:2020-10-19T18:00:47 但我仍然沒有退出標准:2020-10-19T18:00:47.868-03:00

您的 DateTimeFormatter 具有 ("dd/MM/yyyy HH:mm:ss") 但您使用了 "10/19/2020 18:00:47"。 月份不能是 19。

將您的輸入更改為“19/10/2020 18:00:47”,它應該可以工作。

org.threeten.bp.format.DateTimeFormatter dtf = org.threeten.bp.format.DateTimeFormatter.ofPattern ("dd/MM/yyyy HH:mm:ss");
org.threeten.bp.LocalDateTime _date = org.threeten.bp.LocalDateTime.parse("19/10/2020 18:00:47", dtf);
System.out.println(_date);

user3197884 先前接受的答案是正確且信息豐富的 (+1)。 我覺得它沒有完全回答所問的問題,所以我想將轉換貢獻給org.threeten.bp.OffsetDateTime

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern ("MM/dd/yyyy HH:mm:ss");
    OffsetDateTime date = LocalDateTime.parse("10/19/2020 18:00:47", dtf)
            .atZone(ZoneId.of("America/Argentina/Buenos_Aires"))
            .toOffsetDateTime();
    System.out.println(date);

輸出是你要求的:

2020-10-19T18:00:47-03:00

由於您的字符串中沒有偏移量或時區,我們需要以其他方式提供偏移量。 我不敢說在您的特定情況下哪種方法是最好的,但一個非常常見的好方法是提供為字符串假定的時區。 我剛選了一個,請插入您自己的時區。

我沒有交換字符串中的1019 ,而是交換了格式模式中的ddMM 顯然兩者都有效。

暫無
暫無

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

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