]> source.dussan.org Git - poi.git/commitdiff
improve performance of time zone lookup
authorPJ Fanning <fanningpj@apache.org>
Wed, 16 Feb 2022 10:14:05 +0000 (10:14 +0000)
committerPJ Fanning <fanningpj@apache.org>
Wed, 16 Feb 2022 10:14:05 +0000 (10:14 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1898124 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/test/java/org/apache/poi/ooxml/TestPOIXMLProperties.java
poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java
poi/src/main/java/org/apache/poi/util/LocaleUtil.java
poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestCell.java

index b0c15b1340346955cdbe048c35d32127a006450d..926d840affb82ab98594c7f41f169d04232348e6 100644 (file)
@@ -27,6 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.time.ZoneId;
+import java.time.ZoneOffset;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Optional;
@@ -329,7 +330,7 @@ public final class TestPOIXMLProperties {
         try (OPCPackage pkg = OPCPackage.open(_ssTests.openResourceAsStream("sample.strict.xlsx"))) {
             POIXMLProperties props = new POIXMLProperties(pkg);
             assertNotNull(props.getCoreProperties().getCreated());
-            assertEquals(2007, props.getCoreProperties().getCreated().toInstant().atZone(ZoneId.of("UTC")).getYear());
+            assertEquals(2007, props.getCoreProperties().getCreated().toInstant().atZone(ZoneOffset.UTC).getYear());
         }
     }
 
index 1ad302c1a197627bb9f9d58a5db308cb1ba445b5..7a50951ac7eb6daba7a14ec042c75ffbe25bcfb4 100644 (file)
@@ -23,6 +23,7 @@ import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.time.ZoneId;
+import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatterBuilder;
 import java.time.temporal.ChronoField;
@@ -92,7 +93,7 @@ public class DateUtil {
      */
     public static LocalDateTime toLocalDateTime(Date date) {
         return date.toInstant()
-                .atZone(TimeZone.getTimeZone("UTC").toZoneId()) // java.util.Date uses UTC
+                .atZone(TimeZone.getTimeZone(ZoneOffset.UTC).toZoneId()) // java.util.Date uses UTC
                 .toLocalDateTime();
     }
 
@@ -103,7 +104,7 @@ public class DateUtil {
      */
     public static LocalDateTime toLocalDateTime(Calendar date) {
         return date.toInstant()
-                .atZone(TimeZone.getTimeZone("UTC").toZoneId()) // java.util.Date uses UTC
+                .atZone(TimeZone.getTimeZone(ZoneOffset.UTC).toZoneId()) // java.util.Date uses UTC
                 .toLocalDateTime();
     }
 
index 860999c25ea3243f9156d4d55d1e9fca8c469de0..5f714522eb5bf140a15eb19a4951b94d0440816a 100644 (file)
@@ -19,6 +19,7 @@
 package org.apache.poi.util;
 
 import java.nio.charset.Charset;
+import java.time.ZoneOffset;
 import java.util.Calendar;
 import java.util.Locale;
 import java.util.TimeZone;
@@ -45,7 +46,7 @@ public final class LocaleUtil {
      * Excel doesn't store TimeZone information in the file, so if in doubt,
      *  use UTC to perform calculations
      */
-    public static final TimeZone TIMEZONE_UTC = TimeZone.getTimeZone("UTC");
+    public static final TimeZone TIMEZONE_UTC = TimeZone.getTimeZone(ZoneOffset.UTC);
 
     /**
      * Default encoding for unknown byte encodings of native files
index 944f46dd1c7c68da428bdff325b87b4b3f629f8c..55f0343511ec41feb6212cdc3ee6187561231e1b 100644 (file)
@@ -33,6 +33,7 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.ZoneOffset;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -1093,7 +1094,7 @@ public abstract class BaseTestCell {
             cell.setCellValue(new Date());
             assertEquals(CellType.FORMULA, cell.getCellType());
 
-            cell.setCellValue(GregorianCalendar.getInstance(TimeZone.getTimeZone("UTC"), Locale.ROOT));
+            cell.setCellValue(GregorianCalendar.getInstance(TimeZone.getTimeZone(ZoneOffset.UTC), Locale.ROOT));
             assertEquals(CellType.FORMULA, cell.getCellType());
 
             cell.setCellValue(1.0);