make sure no time skew can interfere with comparison (#3003)

* make sure no time skew can interfere with comparison

* import
This commit is contained in:
dahn 2018-11-07 12:04:40 +00:00 committed by Rafael Weingärtner
parent 077e692dbb
commit 604d2d1bd2

View File

@ -21,13 +21,14 @@ package com.cloud.utils;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.ZoneId;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.TimeZone; import java.util.TimeZone;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.OffsetDateTime; import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import com.cloud.utils.DateUtil.IntervalType; import com.cloud.utils.DateUtil.IntervalType;
@ -74,8 +75,9 @@ public class DateUtilTest {
@Test @Test
public void zonedTimeFormatIsoOffsetDateTime() throws ParseException { public void zonedTimeFormatIsoOffsetDateTime() throws ParseException {
Date time = new Date(); Instant moment = Instant.now();
String str = OffsetDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); Date time = Date.from(moment);
String str = OffsetDateTime.ofInstant(moment, ZoneId.systemDefault()).format(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
Date dtParsed = DateUtil.parseTZDateString(str); Date dtParsed = DateUtil.parseTZDateString(str);
@ -84,8 +86,9 @@ public class DateUtilTest {
@Test @Test
public void zonedTimeFormatIsoInstant() throws ParseException { public void zonedTimeFormatIsoInstant() throws ParseException {
Date time = new Date(); Instant moment = Instant.now();
String str = OffsetDateTime.now().format(DateTimeFormatter.ISO_INSTANT); Date time = Date.from(moment);
String str = OffsetDateTime.ofInstant(moment, ZoneId.systemDefault()).format(DateTimeFormatter.ISO_INSTANT);
Date dtParsed = DateUtil.parseTZDateString(str); Date dtParsed = DateUtil.parseTZDateString(str);
@ -94,9 +97,10 @@ public class DateUtilTest {
@Test @Test
public void zonedTimeFormatIsoOffsetDateTimeMs() throws ParseException { 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"); 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); Date dtParsed = DateUtil.parseTZDateString(str);
@ -105,9 +109,10 @@ public class DateUtilTest {
@Test @Test
public void zonedTimeFormatIsoInstantMs() throws ParseException { 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'"); 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); Date dtParsed = DateUtil.parseTZDateString(str);
@ -116,9 +121,10 @@ public class DateUtilTest {
@Test @Test
public void zonedTimeFormatIsoNoColonZMs() throws ParseException { 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"); 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); Date dtParsed = DateUtil.parseTZDateString(str);