如何将 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);
用户 3197884 之前接受的答案是正确且信息丰富的 (+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
由于您的字符串中没有偏移量或时区,我们需要以其他方式提供偏移量。我不敢说在您的特定情况下究竟哪种方法最好,但一种非常常见的好方法是提供为字符串假定的时区。我刚选了一个,请输入你自己的时区。
我没有在字符串中交换 10
和 19
,而是在格式模式中交换了 dd
和 MM
。显然两者都有效。
我升级到:
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);
用户 3197884 之前接受的答案是正确且信息丰富的 (+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
由于您的字符串中没有偏移量或时区,我们需要以其他方式提供偏移量。我不敢说在您的特定情况下究竟哪种方法最好,但一种非常常见的好方法是提供为字符串假定的时区。我刚选了一个,请输入你自己的时区。
我没有在字符串中交换 10
和 19
,而是在格式模式中交换了 dd
和 MM
。显然两者都有效。