From 491b9f5efc01fa36fb3c174e130b46bc69c8d707 Mon Sep 17 00:00:00 2001 From: Shaojin Wen Date: Sat, 20 Jul 2024 06:54:19 +0000 Subject: [PATCH] 8336706: Optimize LocalDate.toString with StringBuilder.repeat Reviewed-by: liach, rriggs --- src/java.base/share/classes/java/time/LocalDate.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/java.base/share/classes/java/time/LocalDate.java b/src/java.base/share/classes/java/time/LocalDate.java index 2649c098a5b..b0d7ad33c8a 100644 --- a/src/java.base/share/classes/java/time/LocalDate.java +++ b/src/java.base/share/classes/java/time/LocalDate.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2024, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2154,10 +2154,10 @@ public final class LocalDate StringBuilder buf = new StringBuilder(10); if (absYear < 1000) { if (yearValue < 0) { - buf.append(yearValue - 10000).deleteCharAt(1); - } else { - buf.append(yearValue + 10000).deleteCharAt(0); + buf.append('-'); } + buf.repeat('0', absYear < 10 ? 3 : absYear < 100 ? 2 : 1); + buf.append(absYear); } else { if (yearValue > 9999) { buf.append('+');