ZonedDateTime本地化

问题描述

我需要根据稍后获得的语言环境输出zoneddatetime。有什么方法可以将zoneddatetime值转换为所需的格式?

zoneddatetime creationDate=zoneddatetime.Now();
//convert creationDate depending on the existing locale

解决方法

ZonedDateTime没有没有格式。 ZonedDateTime的概念是无格式的。

格式化程序是他们自己的对象(DateTimeFormatter的实例)。它们是可配置的(例如,您可以更改其区域设置,然后它们所做的所有特定于区域设置的呈现方式(例如长格式的月份名称)都将更改),并且您可以要求他们格式化提供的zoneddatetime。

因此,请随时创建zoneddatetime对象,并将其存储在所需的位置。如果三天后,您需要根据您刚刚获得的某种语言环境对其进行格式化,那就太好了。然后这样做:

ZonedDateTime zdt = ZonedDateTime.now();
// days pass

DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL).localizedBy(Locale.FRENCH);

System.out.println(dtf.format(zdt));

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...