繁体   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