This PR changes to use EnumMap for DateFormatter.ISO_PATTERNS again by partially reverting ba136dcf40123445aa959786cdc006112d35774a as it seems to give better numbers as follows:

Benchmark                                          (iso)  Mode  Cnt   Score   Error   Units
EnumMapOfBenchmark.getNew                           DATE  avgt        2.643           ns/op
EnumMapOfBenchmark.getNew:·gc.alloc.rate            DATE  avgt       ≈ 10⁻⁴          MB/sec
EnumMapOfBenchmark.getNew:·gc.alloc.rate.norm       DATE  avgt       ≈ 10⁻⁷            B/op
EnumMapOfBenchmark.getNew:·gc.count                 DATE  avgt          ≈ 0          counts
EnumMapOfBenchmark.getNew                           TIME  avgt        2.656           ns/op
EnumMapOfBenchmark.getNew:·gc.alloc.rate            TIME  avgt       ≈ 10⁻⁴          MB/sec
EnumMapOfBenchmark.getNew:·gc.alloc.rate.norm       TIME  avgt       ≈ 10⁻⁷            B/op
EnumMapOfBenchmark.getNew:·gc.count                 TIME  avgt          ≈ 0          counts
EnumMapOfBenchmark.getNew                      DATE_TIME  avgt        4.507           ns/op
EnumMapOfBenchmark.getNew:·gc.alloc.rate       DATE_TIME  avgt       ≈ 10⁻⁴          MB/sec
EnumMapOfBenchmark.getNew:·gc.alloc.rate.norm  DATE_TIME  avgt       ≈ 10⁻⁷            B/op
EnumMapOfBenchmark.getNew:·gc.count            DATE_TIME  avgt          ≈ 0          counts
EnumMapOfBenchmark.getOld                           DATE  avgt        1.320           ns/op
EnumMapOfBenchmark.getOld:·gc.alloc.rate            DATE  avgt       ≈ 10⁻⁴          MB/sec
EnumMapOfBenchmark.getOld:·gc.alloc.rate.norm       DATE  avgt       ≈ 10⁻⁷            B/op
EnumMapOfBenchmark.getOld:·gc.count                 DATE  avgt          ≈ 0          counts
EnumMapOfBenchmark.getOld                           TIME  avgt        1.530           ns/op
EnumMapOfBenchmark.getOld:·gc.alloc.rate            TIME  avgt       ≈ 10⁻⁴          MB/sec
EnumMapOfBenchmark.getOld:·gc.alloc.rate.norm       TIME  avgt       ≈ 10⁻⁷            B/op
EnumMapOfBenchmark.getOld:·gc.count                 TIME  avgt          ≈ 0          counts
EnumMapOfBenchmark.getOld                      DATE_TIME  avgt        1.527           ns/op
EnumMapOfBenchmark.getOld:·gc.alloc.rate       DATE_TIME  avgt       ≈ 10⁻⁴          MB/sec
EnumMapOfBenchmark.getOld:·gc.alloc.rate.norm  DATE_TIME  avgt       ≈ 10⁻⁷            B/op
EnumMapOfBenchmark.getOld:·gc.count            DATE_TIME  avgt          ≈ 0          counts

See gh-29321 See also https://github.com/izeye/samples-jmh-gradle/blob/master/src/jmh/java/com/izeye/samples/jmh/EnumMapOfBenchmark.java

Comment From: sbrannen

This has been merged into main.

Thanks