From e2fb11ff1d6f94e7bc33bb443cd09eba955c28df Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Mon, 5 Nov 2018 17:16:30 +0100 Subject: [PATCH 1/2] make sure no time skew can interfere with comparison --- .../java/com/cloud/utils/DateUtilTest.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/utils/src/test/java/com/cloud/utils/DateUtilTest.java b/utils/src/test/java/com/cloud/utils/DateUtilTest.java index 428666f07365..b9a32ee1e802 100644 --- a/utils/src/test/java/com/cloud/utils/DateUtilTest.java +++ b/utils/src/test/java/com/cloud/utils/DateUtilTest.java @@ -21,6 +21,8 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.Instant; +import java.time.ZoneId; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; @@ -74,8 +76,9 @@ public void zonedTimeFormat() throws ParseException { @Test public void zonedTimeFormatIsoOffsetDateTime() throws ParseException { - Date time = new Date(); - String str = OffsetDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); + Instant moment = Instant.now(); + Date time = Date.from(moment); + String str = OffsetDateTime.ofInstant(moment, ZoneId.systemDefault()).format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); Date dtParsed = DateUtil.parseTZDateString(str); @@ -84,8 +87,9 @@ public void zonedTimeFormatIsoOffsetDateTime() throws ParseException { @Test public void zonedTimeFormatIsoInstant() throws ParseException { - Date time = new Date(); - String str = OffsetDateTime.now().format(DateTimeFormatter.ISO_INSTANT); + Instant moment = Instant.now(); + Date time = Date.from(moment); + String str = OffsetDateTime.ofInstant(moment, ZoneId.systemDefault()).format(DateTimeFormatter.ISO_INSTANT); Date dtParsed = DateUtil.parseTZDateString(str); @@ -94,9 +98,10 @@ public void zonedTimeFormatIsoInstant() throws ParseException { @Test public void zonedTimeFormatIsoOffsetDateTimeMs() throws ParseException { - Date time = new Date(); + Instant moment = Instant.now(); + Date time = Date.from(moment); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSX"); - String str = OffsetDateTime.now().format(formatter); + String str = OffsetDateTime.ofInstant(moment, ZoneId.systemDefault()).format(formatter); Date dtParsed = DateUtil.parseTZDateString(str); @@ -105,9 +110,10 @@ public void zonedTimeFormatIsoOffsetDateTimeMs() throws ParseException { @Test public void zonedTimeFormatIsoInstantMs() throws ParseException { - Date time = new Date(); + Instant moment = Instant.now(); + Date time = Date.from(moment); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'"); - String str = OffsetDateTime.now(ZoneOffset.UTC).format(formatter); + String str = OffsetDateTime.ofInstant(moment, ZoneId.of("UTC")).format(formatter); Date dtParsed = DateUtil.parseTZDateString(str); @@ -116,9 +122,10 @@ public void zonedTimeFormatIsoInstantMs() throws ParseException { @Test public void zonedTimeFormatIsoNoColonZMs() throws ParseException { - Date time = new Date(); + Instant moment = Instant.now(); + Date time = Date.from(moment); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ"); - String str = OffsetDateTime.now().format(formatter); + String str = OffsetDateTime.ofInstant(moment, ZoneId.systemDefault()).format(formatter); Date dtParsed = DateUtil.parseTZDateString(str); From 2c27288f8832f336aa28b784994c9149be7c8ade Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Mon, 5 Nov 2018 18:38:22 +0100 Subject: [PATCH 2/2] import --- utils/src/test/java/com/cloud/utils/DateUtilTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/utils/src/test/java/com/cloud/utils/DateUtilTest.java b/utils/src/test/java/com/cloud/utils/DateUtilTest.java index b9a32ee1e802..98b4d11c9d76 100644 --- a/utils/src/test/java/com/cloud/utils/DateUtilTest.java +++ b/utils/src/test/java/com/cloud/utils/DateUtilTest.java @@ -29,7 +29,6 @@ import java.time.format.DateTimeFormatter; import java.time.OffsetDateTime; -import java.time.ZoneOffset; import com.cloud.utils.DateUtil.IntervalType;