Sfoglia il codice sorgente

improve performance of time zone lookup

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1898124 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_5_2_1
PJ Fanning 2 anni fa
parent
commit
9e85169bdf

+ 2
- 1
poi-ooxml/src/test/java/org/apache/poi/ooxml/TestPOIXMLProperties.java Vedi 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());
}
}


+ 3
- 2
poi/src/main/java/org/apache/poi/ss/usermodel/DateUtil.java Vedi 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();
}


+ 2
- 1
poi/src/main/java/org/apache/poi/util/LocaleUtil.java Vedi 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

+ 2
- 1
poi/src/test/java/org/apache/poi/ss/usermodel/BaseTestCell.java Vedi 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);

Loading…
Annulla
Salva