作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
<分区>
我正在尝试格式化 MonthDay
对象以一种我不必指定顺序的方式。我正在尝试使用本地化的 DateTimeFormatter
.
我有这个代码:
LocalDate datetime = LocalDate.parse("2017-08-11", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
MonthDay monthday = MonthDay.from(datetime);
System.out.println(monthday.format(DateTimeFormatter.ofPattern("MMMM dd").withLocale(Locale.ENGLISH)));
System.out.println(monthday.format(DateTimeFormatter.ofPattern("MMMM dd").withLocale(Locale.GERMANY)));
System.out.println(monthday.format(DateTimeFormatter.ofPattern("MMMM dd").withLocale(Locale.forLanguageTag("UK"))));
System.out.println(datetime.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.ENGLISH)));
System.out.println(datetime.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.forLanguageTag("UK"))));
// next line throws exception for java.time.temporal.UnsupportedTemporalTypeException: Unsupported field: YearOfEra
System.out.println(monthday.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM).withLocale(Locale.forLanguageTag("UK"))));
前 3 次打印将按预期打印翻译后的月份和日期,但始终是先是月份再是日期。它不会更改顺序,因为我明确告诉它顺序。
接下来的两个(异常之前)将分别打印:
Aug 11, 2017
11 серп. 2017
请注意日期是在月份之前还是之后,具体取决于传递给函数的语言环境。我如何使用 MonthDay
对象执行此操作,因为最后一行在以这种方式完成时抛出异常。
这个问题在这里已经有了答案: How to format YearMonth and MonthDay depending on a Locale? (3 个答案) 关闭 5 年前。 我正在尝试格式
我是一名优秀的程序员,十分优秀!