RFR: JDK-8318761: MessageFormat pattern support for CompactNumberFormat, ListFormat, and DateTimeFormatter
Justin Lu
jlu at openjdk.org
Wed Jan 31 22:28:16 UTC 2024
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"
-------------
Commit messages:
- init
Changes: https://git.openjdk.org/jdk/pull/17663/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17663&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8318761
Stats: 1166 lines in 6 files changed: 871 ins; 198 del; 97 mod
Patch: https://git.openjdk.org/jdk/pull/17663.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17663/head:pull/17663
PR: https://git.openjdk.org/jdk/pull/17663
More information about the core-libs-dev
mailing list