gpt4 book ai didi

java - 使用 java 将自定义日期字符串(含 am/pm)转换为 UTC 日期时间

转载 作者:行者123 更新时间:2023-11-30 02:18:50 25 4
gpt4 key购买 nike

我只需要示例代码块或建议将以下日期字符串转换为 yyyy-MM-dd HH:mm:ss 格式的 utc 时间?

示例日期字符串:11/23/2017 09:44am

有类似的问题,但我的测试数据是上午/下午。所以请不要认为这是重复的

最佳答案

您可以使用 Java 8 time封装:

String input = "11/23/2017 09:44am";
String format = "MM/dd/yyyy hh:mma";

DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
LocalDateTime date = LocalDateTime.parse(input, formatter);
System.out.printf("%s%n", date);

但问题是:这会抛出 DateTimeParseException ,因为小写的“am”。

我查阅了文档,但找不到将小写“am”或“pm”解析为子午线指示符的标准方法1。 <罢工> You'll end up manually replacing them :

<罢工>
input = input.replace("AM", "am").replace("PM","pm");

<罢工>

正如 @OleVV 在评论中提到的,您可以使用 DateTimeFormatterBuilder并指定解析不区分大小写:

DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.parseCaseInsensitive()
.appendPattern(format)
.toFormatter();

然后您可以使用此格式化程序作为 LocalDateTime.parse 的参数方法。

上述帖子的另一个答案provides a solution您可以在其中使用小写变体覆盖 AM/PM 符号。

<小时/>

1 有趣的是,SimpleDateFormat 确实支持小写am/pm的解析。

关于java - 使用 java 将自定义日期字符串(含 am/pm)转换为 UTC 日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47467669/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com