diff options
author | Greg Woolsey <gwoolsey@apache.org> | 2019-03-30 20:13:24 +0000 |
---|---|---|
committer | Greg Woolsey <gwoolsey@apache.org> | 2019-03-30 20:13:24 +0000 |
commit | 67aad697571fe945e1100cd0a1ba148e9479bee4 (patch) | |
tree | 77bcdf3a781765d2979cf157295d7bbc302ecd45 /src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java | |
parent | 0d22749477125691ea5c7ca8de620aa5dbdef852 (diff) | |
download | poi-67aad697571fe945e1100cd0a1ba148e9479bee4.tar.gz poi-67aad697571fe945e1100cd0a1ba148e9479bee4.zip |
#63292 1904 date windowing flag not used for some format cases
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1856648 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java')
-rw-r--r-- | src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java b/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java index 014139d88f..d07f8b144d 100644 --- a/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java +++ b/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java @@ -936,6 +936,37 @@ public class TestDataFormatter { String value = df.formatCellValue(cell, wb.getCreationHelper().createFormulaEvaluator()); assertEquals("-130", value); } + + /** + * Bug #63292 + */ + @Test + public void test1904With4PartFormat() { + Date date = new Date(); + int formatIndex = 105; + String formatString1 = "[$-F400]m/d/yy h:mm:ss\\ AM/PM"; + String formatString4 = "[$-F400]m/d/yy h:mm:ss\\ AM/PM;[$-F400]m/d/yy h:mm:ss\\ AM/PM;_-* \"\"??_-;_-@_-"; + + String s1900, s1904; + + // These two format calls return the same thing, as expected: + // The assertEquals() passes with 1-part format + s1900 = format(date, formatIndex, formatString1, false); + s1904 = format(date, formatIndex, formatString1, true); + assertEquals(s1900, s1904); // WORKS + + // These two format calls should return the same thing but don't: + // It fails with 4-part format because the call to CellFormat ignores 'use1904Windowing' + s1900 = format(date, formatIndex, formatString4, false); + s1904 = format(date, formatIndex, formatString4, true); + assertEquals(s1900, s1904); // FAILS before fix for #63292 + } + + private String format(Date date, int formatIndex, String formatString, boolean use1904Windowing) { + DataFormatter formatter = new DataFormatter(); + double n = DateUtil.getExcelDate(date, use1904Windowing); + return formatter.formatRawCellContents(n, formatIndex, formatString, use1904Windowing); + } @Test public void testConcurrentCellFormat() throws Exception { |