Support a couple more crazy formats, as identified in bug #48872, plus test them

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@949226 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2010-05-28 16:47:01 +00:00
parent e09e67c403
commit db3f7a1484
2 changed files with 6 additions and 4 deletions

View File

@ -52,7 +52,7 @@ public class DateUtil {
*/ */
private static final Pattern date_ptrn1 = Pattern.compile("^\\[\\$\\-.*?\\]"); private static final Pattern date_ptrn1 = Pattern.compile("^\\[\\$\\-.*?\\]");
private static final Pattern date_ptrn2 = Pattern.compile("^\\[[a-zA-Z]+\\]"); 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, * Given a Date, converts it into a double representing its internal Excel representation,

View File

@ -242,8 +242,8 @@ public final class TestHSSFDateUtil extends TestCase {
"dd.mm.yyyy", "dd\\.mm\\.yyyy", "dd.mm.yyyy", "dd\\.mm\\.yyyy",
"dd\\ mm\\.yyyy AM", "dd\\ mm\\.yyyy pm", "dd\\ mm\\.yyyy AM", "dd\\ mm\\.yyyy pm",
"dd\\ mm\\.yyyy\\-dd", "[h]:mm:ss", "dd\\ mm\\.yyyy\\-dd", "[h]:mm:ss",
"mm/dd/yy", "\"mm\"/\"dd\"/\"yy\"",
//YK: TODO "mm:ss.0" is a built-in date format which is not recognized by DateUtil.isInternalDateFormat "m\\/d\\/yyyy",
// These crazy ones are valid // These crazy ones are valid
"yyyy-mm-dd;@", "yyyy/mm/dd;@", "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", "yy/mmm/dd SS",
"mm/dd HH:MM AM", "mm/dd HH:MM am", "mm/dd HH:MM AM", "mm/dd HH:MM am",
"mm/dd HH:MM PM", "mm/dd HH:MM pm", "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++) { for(int i=0; i<formats.length; i++) {
assertTrue( assertTrue(