This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new 63f644d  [LANG-1637] Fix 2 digit week year formatting (#688)
63f644d is described below

commit 63f644daa847e193d9f70791ef2337816f6409a6
Author: Uri Gonen <[email protected]>
AuthorDate: Wed Jan 6 22:51:14 2021 +0200

    [LANG-1637] Fix 2 digit week year formatting (#688)
    
    * LANG-1637: fix 2 digit week year formatting
    
    * LANG-1637: added test cases for Y & YYY patterns
    
    * LANG-1637: added test cases for Y & YYY patterns
    
    * LANG-1637: added test cases for Y & YYY patterns
---
 .../org/apache/commons/lang3/time/FastDatePrinter.java    |  2 +-
 .../apache/commons/lang3/time/FastDatePrinterTest.java    | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java 
b/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java
index 658e3ca..9778abc 100644
--- a/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java
+++ b/src/main/java/org/apache/commons/lang3/time/FastDatePrinter.java
@@ -1118,7 +1118,7 @@ public class FastDatePrinter implements DatePrinter, 
Serializable {
          */
         @Override
         public final void appendTo(final Appendable buffer, final int value) 
throws IOException {
-            appendDigits(buffer, value);
+            appendDigits(buffer, value % 100);
         }
     }
 
diff --git 
a/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java 
b/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java
index 096cbbb..13ba5fe 100644
--- a/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java
+++ b/src/test/java/org/apache/commons/lang3/time/FastDatePrinterTest.java
@@ -432,4 +432,19 @@ public class FastDatePrinterTest {
         calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
         assertEquals("7", printer.format(calendar.getTime()));
     }
+
+    @DefaultLocale(language = "en", country = "US")
+    @DefaultTimeZone("America/New_York")
+    @Test
+    public void testWeekYear() {
+        final GregorianCalendar cal = new GregorianCalendar(2020, 12, 31, 0, 
0, 0);
+        final DatePrinter printer4Digits = getInstance("YYYY");
+        final DatePrinter printer4DigitsFallback = getInstance("YYY");
+        final DatePrinter printer2Digits = getInstance("YY");
+        final DatePrinter printer4DigitAnotherFallback = getInstance("Y");
+        assertEquals("2021", printer4Digits.format(cal));
+        assertEquals("2021", printer4DigitsFallback.format(cal));
+        assertEquals("2021", printer4DigitAnotherFallback.format(cal));
+        assertEquals("21", printer2Digits.format(cal));
+    }
 }

Reply via email to