gpt4 book ai didi

java - JSR310 如何国际化月日模式?

转载 作者:行者123 更新时间:2023-12-03 23:08:24 25 4
gpt4 key购买 nike

我正在尝试格式化没有年份的日期(只有日和月,例如 12.10)

DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT) 对我来说仍然是年份 (12.10.20)。

所以我尝试了 DateTimeFormatter.ofPattern("dd.MM") 但显然 硬编码顺序和点,这不会让美国用户满意。(他们期望斜杠和第一个月)

如何国际化一个模式?分隔符等是否有一些抽象语法?

最佳答案

好吧,正如 Ole 所指出的,仅使用 java.time 没有 100% 令人满意的解决方案。但是我的图书馆Time4J已经找到基于CLDR仓库数据的解决方案(ICU4J也给予支持)使用类型AnnualDate (作为 MonthDay 的替代品):

LocalDate yourLocalDate = ...;
MonthDay md = MonthDay.from(yourLocalDate);
AnnualDate ad = AnnualDate.from(md);

ChronoFormatter<AnnualDate> usStyle =
ChronoFormatter.ofStyle(DisplayMode.SHORT, Locale.US, AnnualDate.chronology());
ChronoFormatter<AnnualDate> germanStyle =
ChronoFormatter.ofStyle(DisplayMode.SHORT, Locale.GERMANY, AnnualDate.chronology());
System.out.println("US-format: " + usStyle.format(ad)); // US-format: 12/31
System.out.println("German: " + germanStyle.format(ad)); // German: 31.12.

关于java - JSR310 如何国际化月日模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60896781/

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