On Fri, 2 Feb 2024 22:16:30 GMT, Justin Lu <j...@openjdk.org> wrote: >> Please review this PR and [CSR](https://bugs.openjdk.org/browse/JDK-8319344) >> which adds MessageFormat pattern support for the following subformats: >> ListFormat, CompactNumberFormat, and DateTimeFormatter. This change is >> intended to provide pattern support for the more recently added JDK Format >> subclasses, as well as improving java.time formatting within i18n. The draft >> javadoc can be viewed here: >> https://cr.openjdk.org/~jlu/docs/api/java.base/java/text/MessageFormat.html. >> Please see the CSR for more in-depth behavioral changes, as well as >> limitations. >> >> The `FormatTypes`: dtf_date, dtf_time, dtf_datetime, pre-defined >> DateTimeFormatter(s), and list are added. >> The `FormatStyles`: compact_short, compact_long, or, and unit are added. >> >> For example, previously, >> >> >> Object[] args = {LocalDate.of(2023, 11, 16), LocalDate.of(2023, 11, 27)}; >> MessageFormat.format("It was {0,date,full}, now it is {1,date,full}", args); >> >> >> would throw `Exception java.lang.IllegalArgumentException: Cannot format >> given Object as a Date` >> >> Now, a user can call >> >> >> MessageFormat.format("It was {0,dtf_date,full}, now it is >> {1,dtf_date,full}", args); >> >> >> which returns "It was Thursday, November 16, 2023, now it is Friday, >> November 17, 2023" > > Justin Lu has updated the pull request incrementally with one additional > commit since the last revision: > > reflect Naoto's comments
src/java.base/share/classes/java/text/MessageFormat.java line 377: > 375: * Calendar cal = Calendar.getInstance(); > 376: * cal.set(123 + 1900, 10, 16); > 377: * Object[] arg = {cal.getTime()}; Maybe with the following, better aligned with `java.time`'s example? Object[] arg = {new GregorianCalendar(2023, Calendar.NOVEMBER, 16).getTime()}; ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/17663#discussion_r1476820208