private SimpleDateFormatThreadSafe givenFormatterForTimeZone(TimeZone timeZoneUTC) { return new SimpleDateFormatThreadSafe(DATE_PATTERN, timeZoneUTC); }
private Date parseTestDate(String dateString, SimpleDateFormatThreadSafe formatter) { Date date = null; try { date = formatter.parse(dateString); } catch (ParseException e) { e.printStackTrace(); } return date; }
@Test public void givenStringDateInISOFormat_WhenTimeZoneIsUTC_ThenUTCPlusOneTimeIsOneHourMore() { // This test exercises UTC (API) vs British Summer Time (UTC + 1) SimpleDateFormatThreadSafe formatter = givenFormatterForTimeZone(timeZoneUTC()); Date date = parseTestDate("2016-01-01T10:00:00Z", formatter); assertEquals(date, createDate(2016, Calendar.JANUARY, 1, 11, timeZoneUTCPlusOne())); }
@Test public void givenStringDateInISOFormat_WhenTimeZoneIsUTC_ThenUTCTimeIsTheSame() { SimpleDateFormatThreadSafe formatter = givenFormatterForTimeZone(timeZoneUTC()); Date date = parseTestDate("2016-01-01T10:00:00Z", formatter); assertEquals(date, createUTCDate(2016, Calendar.JANUARY, 1, 10)); }
@Test public void givenStringDateInISOFormat_WhenTimeZoneIsUTCMinusOne_ThenUTCTimeIsOneHourMore() { SimpleDateFormatThreadSafe formatter = givenFormatterForTimeZone(timeZoneUTCMinusOne()); Date date = parseTestDate("2016-01-01T10:00:00Z", formatter); assertEquals(date, createUTCDate(2016, Calendar.JANUARY, 1, 11)); }
@Test public void givenStringDateInISOFormat_WhenTimeZoneIsPST_ThenUTCTimeIsSevenHoursLess() { SimpleDateFormatThreadSafe formatter = givenFormatterForTimeZone(timeZonePST()); Date date = parseTestDate("2016-01-01T10:00:00Z", formatter); assertEquals(date, createUTCDate(2016, Calendar.JANUARY, 1, 18)); }
@Test public void givenStringDateInISOFormat_WhenTimeZoneIsUTCPlusOne_ThenUTCTimeIsOneHourLess() { SimpleDateFormatThreadSafe formatter = givenFormatterForTimeZone(timeZoneUTCPlusOne()); Date date = parseTestDate("2016-01-01T10:00:00Z", formatter); assertEquals(date, createUTCDate(2016, Calendar.JANUARY, 1, 9)); }
@Test public void givenStringDateInISOFormat_WhenTimeZoneIsUTCPlusTwo_ThenUTCTimeIsTwoHoursLess() { SimpleDateFormatThreadSafe formatter = givenFormatterForTimeZone(timeZoneUTCPlusTwo()); Date date = parseTestDate("2016-01-01T10:00:00Z", formatter); assertEquals(date, createUTCDate(2016, Calendar.JANUARY, 1, 8)); }
@SuppressWarnings("CloneDoesntCallSuperClone") // Wrapper object should delegate even clone @Override public Object clone() { return new SimpleDateFormatThreadSafe((SimpleDateFormat) localSimpleDateFormat.get().clone()); }
@SuppressWarnings("CloneDoesntCallSuperClone") // Wrapper object should delegate even clone @Override public Object clone() { return new SimpleDateFormatThreadSafe((SimpleDateFormat) localSimpleDateFormat.get().clone()); }