gpt4 book ai didi

java - 有没有办法获取给定日期字符串或 LocalDate 的模式

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

我有一个 LocalDate 对象,但我正在努力使用 Java 8 中的 DateTimeFormatter 类以编程方式找到该模式。有没有办法做到这一点或有任何第三方库可以做到这一点?

我已尝试以下方法,但我不想使用 DateFormat 类,因为不建议这样做。

LocalDateTime.parse("8/22/19 4:39 PM").format(DateTimeFormatter.ofPattern(pattern1).withLocale(Locale.getDefault()))

“打印出我想要的 -> M/d/yy h:mm a(我真的想要 'mm/dd/yyyy h:mm')

尽管如果我尝试上面的模式字符串来解析日期字符串,它会失败。给了我这个异常(exception)”

Exception in thread "main" java.time.format.DateTimeParseException: Text '8/22/19 4:39 PM' could not be parsed at index 0
at java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949)
at java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1851)
at java.time.LocalDateTime.parse(LocalDateTime.java:492)

“我想要这种行为的原因是我们的 i18n 文件中配置了区域设置特定的日期模式。如果这些模式不可用(未配置),我需要提供 jdk 区域设置/区域特定的日期模式。DateFormat 类有点给我,但不完全是”

最佳答案

下面是使用 DateTimeFormatter 与字符串进行转换的示例。请注意,我使用 LocalDateTime 而不是 LocalDate,因为时间也包含在内。

DateTimeFormatter formatterWithTime = DateTimeFormatter.ofPattern("MM/dd/yy h:mm a").withLocale(Locale.US);

String outWithTime = formatterWithTime.format(LocalDateTime.now());
System.out.println(outWithTime);

String in = "08/22/19 4:39 PM";
LocalDateTime ldt = LocalDateTime.from(formatterWithTime.parse(in));
System.out.println(ldt);

这会打印

08/23/19 10:44 AM
2019-08-22T16:39

关于java - 有没有办法获取给定日期字符串或 LocalDate 的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57622410/

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