RFR: 8366224: Introduce DecimalDigits.appendPair for efficient two-digit formatting and refactor DateTimeHelper [v11]

Shaojin Wen swen at openjdk.org
Mon Nov 3 17:23:51 UTC 2025


> This PR introduces a new efficient API for appending two-digit integers to StringBuilders and refactors DateTimeHelper to leverage this new functionality.
> 
> Changes include:
> 
> 1. New `appendPair` method for efficient two-digit integer formatting (00-99):
>    - Added `AbstractStringBuilder.appendPair(int i)` with core implementation
>    - Added `JavaLangAccess.appendPair(StringBuilder, int)` for internal access
>    - Added `System.JavaLangAccessImpl.appendPair(StringBuilder, int)` bridge
>    - Added `DecimalDigits.appendPair(StringBuilder, int)` public static utility method
>    - Enhanced Javadoc documentation for all new methods
> 
> 2. Refactored `DateTimeHelper` to use the new `DecimalDigits.appendPair`:
>    - Updated `DateTimeHelper.formatTo` methods for `LocalDate` and `LocalTime`
>    - Replaced manual formatting logic with the new efficient two-digit appending
>    - Improved code clarity and consistency in date/time formatting
> 
> These changes improve code clarity and performance when formatting two-digit numbers, particularly in date/time formatting scenarios.

Shaojin Wen has updated the pull request incrementally with one additional commit since the last revision:

  Fix JavaLangAccess.appendLatin1 javadoc to match method signature
  
  The previous javadoc incorrectly described the method as appending a two-digit
  integer representation, but the method actually appends two Latin-1 characters.
  Updated the documentation to accurately reflect the method's behavior.
  
  Co-authored-by: Qwen-Coder <qwen-coder at alibabacloud.com>

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/26911/files
  - new: https://git.openjdk.org/jdk/pull/26911/files/678e3066..5c9255c2

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26911&range=10
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26911&range=09-10

  Stats: 10 lines in 2 files changed: 0 ins; 7 del; 3 mod
  Patch: https://git.openjdk.org/jdk/pull/26911.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26911/head:pull/26911

PR: https://git.openjdk.org/jdk/pull/26911


More information about the core-libs-dev mailing list