嗨,我有一个小的Java代码片段。我正在使用Java 8。我有一个JavaLocalDateTime
对象,我想格式化它。请看下面我的代码
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
我怎么才能做到呢?
使用内置的本地化格式
你能接受输出中的逗号吗?
DateTimeFormatter dateTimeFormatter
= DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM)
.withLocale(Locale.US);
System.out.println(ldt.format(dateTimeFormatter));
输出:
Oct 21, 2021, 11:32:38 AM
直接的好处是我们不需要摆弄任何格式模式字符串,这总是一个容易出错的任务。另外两个优点是:1。用户可能会更喜欢内置格式,因为它是为了满足区域设置(以美国为例)中人们的期望而构建的;2. 这段代码很适合本地化:只要指定一个不同的语言环境,就能让不同文化的人满意。
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("dd MMM yyyy HH:mm:ss a");
System.out.println( ldt.format(dateTimeFormatter));