]> source.dussan.org Git - poi.git/commitdiff
Support a couple more crazy formats, as identified in bug #48872, plus test them
authorNick Burch <nick@apache.org>
Fri, 28 May 2010 16:47:01 +0000 (16:47 +0000)
committerNick Burch <nick@apache.org>
Fri, 28 May 2010 16:47:01 +0000 (16:47 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@949226 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/ss/usermodel/DateUtil.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDateUtil.java

index 238eefb920f21d9c643d50dfbb56d0a4f266b766..fb2bfd94d2a0bf692ff678854cd969d3fe037578 100644 (file)
@@ -52,7 +52,7 @@ public class DateUtil {
      */
     private static final Pattern date_ptrn1 = Pattern.compile("^\\[\\$\\-.*?\\]");
     private static final Pattern date_ptrn2 = Pattern.compile("^\\[[a-zA-Z]+\\]");
-    private static final Pattern date_ptrn3 = Pattern.compile("^[yYmMdDhHsS\\-/,. :\\\\]+[ampAMP/]*$");
+    private static final Pattern date_ptrn3 = Pattern.compile("^[yYmMdDhHsS\\-/,. :\"\\\\]+0?[ampAMP/]*$");
 
     /**
      * Given a Date, converts it into a double representing its internal Excel representation,
index 1becfcb36d47cf31d0c8aded18a341ef3ba06675..cab1467d8f259ed669de433e75138dace60e83bf 100644 (file)
@@ -242,8 +242,8 @@ public final class TestHSSFDateUtil extends TestCase {
                 "dd.mm.yyyy", "dd\\.mm\\.yyyy",
                 "dd\\ mm\\.yyyy AM", "dd\\ mm\\.yyyy pm",
                  "dd\\ mm\\.yyyy\\-dd", "[h]:mm:ss",
-
-                //YK: TODO "mm:ss.0" is a built-in date format which is not recognized by DateUtil.isInternalDateFormat
+                 "mm/dd/yy", "\"mm\"/\"dd\"/\"yy\"",
+                 "m\\/d\\/yyyy", 
 
                 // These crazy ones are valid
                 "yyyy-mm-dd;@", "yyyy/mm/dd;@",
@@ -269,7 +269,9 @@ public final class TestHSSFDateUtil extends TestCase {
                 "mm/dd HH:MM", "yy/mmm/dd SS",
                 "mm/dd HH:MM AM", "mm/dd HH:MM am",
                 "mm/dd HH:MM PM", "mm/dd HH:MM pm",
-                "m/d/yy h:mm AM/PM"
+                "m/d/yy h:mm AM/PM",
+                "hh:mm:ss", "hh:mm:ss.0", "mm:ss.0",
+
         };
         for(int i=0; i<formats.length; i++) {
             assertTrue(