On Fri, 26 Jul 2024 15:44:59 GMT, Shaojin Wen <d...@openjdk.org> wrote:

>> By removing the redundant code logic in 
>> DateTimeFormatterBuilder$InstantPrinterParser#formatTo, the codeSize can be 
>> reduced and the performance can be improved.
>
> Shaojin Wen has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   add comment

src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java line 
3812:

> 3810:             int inNano = NANO_OF_SECOND.checkValidIntValue(inNanos != 
> null ? inNanos : 0);
> 3811:             // use LocalDateTime.toString, If fractionalDigits < 0, 
> printNano is implemented in LocalDateTime
> 3812:             LocalDateTime ldt = LocalDateTime.ofEpochSecond(inSecs, 
> fractionalDigits >= 0 ? 0 : inNano, ZoneOffset.UTC);

I believe this whole approach is flawed. The comment above says:

`// use INSTANT_SECONDS, thus this code is not bound by Instant.MAX`

which indicates that the instant value may not fit in `LocalDateTime`.

You may be able to special case certain code paths to use `LocalDateTime`, but 
that makes things more complex, and not necessarily faster.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20353#discussion_r1694249198

Reply via email to