我有Instant
,我想使用DateTimeFormatter
打印一个日期和月份的日期,尊重用户Local
。
例如:在美国,我想打印MM/dd
(即05/31),而在德国,我想打印dd.MM
(即31.05)。
如何使用java8 DateTimeFormatter
?
答案 0 :(得分:0)
DateTimeFormatter.ofLocalizedDate方法允许您获取可以输出日期的格式化程序,但JDK 8中没有可用于输出本地化年月的数据。您需要自己创建 <?xml version="1.0"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<body>
<trans-unit id="1">
<source>Next</source>
<target>Siguiente</target>
</trans-unit>
<trans-unit id="2">
<source>Previous</source>
<target>Anterior</target>
</trans-unit>
<trans-unit id="3">
<source>client</source>
<target>Cliente</target>
</trans-unit>
<trans-unit id="4">
<source>user</source>
<target>Usuario</target>
</trans-unit>
</body>
</file>
</xliff>
。您可以使用CLDR中的数据来提供帮助。
输出Map<Locale, DateTimeFormatter>
是一个单独的问题,因为瞬间没有日期或时间部分。格式化程序需要使用Instant
添加时区,以便输出withZone(ZoneId)
作为年月。