diff --git a/main/src/com/google/refine/importers/OdsImporter.java b/main/src/com/google/refine/importers/OdsImporter.java index 47d41d170..3abe9cc90 100644 --- a/main/src/com/google/refine/importers/OdsImporter.java +++ b/main/src/com/google/refine/importers/OdsImporter.java @@ -39,6 +39,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.io.Serializable; +import java.time.ZoneOffset; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -216,7 +217,7 @@ public class OdsImporter extends TabularImportingParserBase { } else if ("float".equals(cellType)) { value = cell.getDoubleValue(); } else if ("date".equals(cellType)) { - value = cell.getDateValue(); + value = cell.getDateValue().toInstant().atOffset(ZoneOffset.UTC); } else if ("currency".equals(cellType)) { value = cell.getCurrencyValue(); } else if ("percentage".equals(cellType)) { diff --git a/main/tests/server/src/com/google/refine/importers/OdsImporterTests.java b/main/tests/server/src/com/google/refine/importers/OdsImporterTests.java index 8ebe73507..ff5b7e42e 100644 --- a/main/tests/server/src/com/google/refine/importers/OdsImporterTests.java +++ b/main/tests/server/src/com/google/refine/importers/OdsImporterTests.java @@ -43,6 +43,7 @@ import static org.testng.Assert.assertTrue; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.time.OffsetDateTime; import org.slf4j.LoggerFactory; import org.testng.Assert; @@ -109,8 +110,7 @@ public class OdsImporterTests extends ImporterTest { Row row = project.rows.get(0); assertEquals(row.cells.size(), COLUMNS); assertEquals((String)row.getCellValue(1),"2 Days In New York"); - // FIXME: Dates are currently broken -// assertEquals(((OffsetDateTime)row.getCellValue(3)).toString().substring(0, 10),"2012-03-28"); + assertEquals(((OffsetDateTime)row.getCellValue(3)).toString().substring(0, 10),"2012-03-28"); assertEquals(((Number)row.getCellValue(5)).doubleValue(), 4.5, EPSILON); assertFalse((Boolean)row.getCellValue(7)); diff --git a/main/tests/server/src/com/google/refine/importers/films.ods b/main/tests/server/src/com/google/refine/importers/films.ods new file mode 100644 index 000000000..0452824c3 Binary files /dev/null and b/main/tests/server/src/com/google/refine/importers/films.ods differ