【问题标题】:How to convert a LocalDateTime date to a particular format?如何将 LocalDateTime 日期转换为特定格式?
【发布时间】:2021-12-09 00:44:57
【问题描述】:
您好,我正在编写小型 Java 代码 sn-p。我正在使用 Java 8。我有一个 Java LocalDateTime 对象,我想格式化它。请在下面查看我的代码。
String dateUTC = "2021-10-21T10:32:38Z";
Instant i = Instant.parse(dateUTC);
LocalDateTime ldt = i.atZone(ZoneId.of("Europe/London")).toLocalDateTime();
我想将LocalDateTime 对象ldt 打印为以下格式的字符串:
Oct 21 2021 11:32:38 AM
我怎样才能做到这一点?
【问题讨论】:
标签:
java
datetime
datetime-format
java-time
【解决方案1】:
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss a");
System.out.println( ldt.format(dateTimeFormatter));
【解决方案2】:
使用内置的本地化格式
你可以在输出中使用逗号吗?
DateTimeFormatter dateTimeFormatter
= DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
.withLocale(Locale.US);
System.out.println(ldt.format(dateTimeFormatter));
输出:
2021 年 10 月 21 日上午 11:32:38
直接的好处是我们不需要摆弄任何格式模式字符串,这总是一个容易出错的任务。另外两个优点是: 1. 用户可能会对内置格式更满意,因为它的构建符合当地人的期望(例如美国); 2. 代码很适合本地化:只需指定不同的语言环境,让不同文化的人开心。