You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by on...@apache.org on 2017/01/20 05:35:57 UTC

svn commit: r1779564 - in /poi/trunk/src: java/org/apache/poi/ss/usermodel/DataFormatter.java testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java

Author: onealj
Date: Fri Jan 20 05:35:57 2017
New Revision: 1779564

URL: http://svn.apache.org/viewvc?rev=1779564&view=rev
Log:
bug 60031: DataFormatter parses months incorrectly when put at the end of date segment. Thanks to Andrzej Witecki

Modified:
    poi/trunk/src/java/org/apache/poi/ss/usermodel/DataFormatter.java
    poi/trunk/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java

Modified: poi/trunk/src/java/org/apache/poi/ss/usermodel/DataFormatter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/usermodel/DataFormatter.java?rev=1779564&r1=1779563&r2=1779564&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/usermodel/DataFormatter.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/usermodel/DataFormatter.java Fri Jan 20 05:35:57 2017
@@ -582,6 +582,9 @@ public class DataFormatter implements Ob
                 }
             }
             else {
+                if (Character.isWhitespace(c)){
+                    ms.clear();
+                }
                 sb.append(c);
             }
         }

Modified: poi/trunk/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java?rev=1779564&r1=1779563&r2=1779564&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/usermodel/TestDataFormatter.java Fri Jan 20 05:35:57 2017
@@ -815,5 +815,17 @@ public class TestDataFormatter {
         assertEquals("5.6789", formatter.formatCellValue(cell, evaluator));
 
         wb.close();
+    }
+    
+    /**
+     * bug 60031: DataFormatter parses months incorrectly when put at the end of date segment
+     */
+    @Test
+    public void testBug60031() {
+        // 23-08-2016 08:51:01 which is 42605.368761574071 as double will be parsed
+        // with format "yyyy-dd-MM HH:mm:ss" into "2016-23-51 08:51:01".
+        DataFormatter dfUS = new DataFormatter(Locale.US);
+        assertEquals("2016-23-08 08:51:01", dfUS.formatRawCellContents(42605.368761574071, -1, "yyyy-dd-MM HH:mm:ss"));
+        assertEquals("2017-12-01 January 09:54:33", dfUS.formatRawCellContents(42747.412892397523, -1, "yyyy-dd-MM MMMM HH:mm:ss"));
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org