Author: axh
Date: Sat Jan 11 22:46:10 2025
New Revision: 1923081

URL: http://svn.apache.org/viewvc?rev=1923081&view=rev
Log:
Support long month names, dot after day, single digit day of month

Modified:
    poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
    
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java

Modified: poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java?rev=1923081&r1=1923080&r2=1923081&view=diff
==============================================================================
--- poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java 
[UTF-8] (original)
+++ poi/trunk/poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java 
[UTF-8] Sat Jan 11 22:46:10 2025
@@ -78,8 +78,8 @@ public class DateUtil {
     private static final Pattern date_ptrn5 = 
Pattern.compile("^\\[DBNum([123])]");
 
     private static final DateTimeFormatter dateTimeFormats = new 
DateTimeFormatterBuilder()
-            .appendPattern("[dd MMM[ yyyy]][[ ]h:m[:s][.SSS] a][[ 
]H:m[:s][.SSS]]")
-            .appendPattern("[[yyyy ]dd-MMM[-yyyy]][[ ]h:m[:s][.SSS] a][[ 
]H:m[:s][.SSS]]")
+            .appendPattern("[d[.] [MMMM][MMM][ yyyy]][[ ]h:m[:s][.SSS] a][[ 
]H:m[:s][.SSS]]")
+            .appendPattern("[[yyyy ]d-[MMMM][MMM][-yyyy]][[ ]h:m[:s][.SSS] 
a][[ ]H:m[:s][.SSS]]")
             .appendPattern("[M/dd[/yyyy]][[ ]h:m[:s][.SSS] a][[ 
]H:m[:s][.SSS]]")
             .appendPattern("[[yyyy/]M/dd][[ ]h:m[:s][.SSS] a][[ 
]H:m[:s][.SSS]]")
             .parseDefaulting(ChronoField.YEAR_OF_ERA, 
LocaleUtil.getLocaleCalendar().get(Calendar.YEAR))

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java?rev=1923081&r1=1923080&r2=1923081&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java 
(original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestValue.java 
Sat Jan 11 22:46:10 2025
@@ -29,9 +29,13 @@ import org.apache.poi.ss.formula.eval.Nu
 import org.apache.poi.ss.formula.eval.StringEval;
 import org.apache.poi.ss.formula.eval.ValueEval;
 import org.apache.poi.ss.util.Utils;
+import org.apache.poi.util.LocaleUtil;
 import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Locale;
 
 /**
  * Tests for {@link Value}
@@ -86,6 +90,14 @@ final class TestValue {
     }
 
     @Test
+    void testDates() {
+        confirmValue("1 January 2025", 45658);
+        confirmValue("01 January 2025", 45658);
+        confirmValue("1 Jan 2025", 45658);
+        confirmValue("01 Jan 2025", 45658);
+    }
+
+    @Test
     void testErrors() {
         confirmValueError("1+1");
         confirmValueError("1 1");



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to