public static Date toDate(String s) { return new DateIso8601().parse(s); } }
@Test public void test_2() { TimeZone tz = TimeZone.getTimeZone("Europe/Berlin"); TimeZone gmt = TimeZone.getTimeZone("GMT"); for (int i = 1900; i <= 2100; i++) { assertEquals(create(i, 1, 5, 14, 30, 10, 123, tz), new DateIso8601(tz).parse(i + "-01-05T14:30:10.123")); assertEquals(create(i, 7, 5, 14, 30, 10, 123, tz), new DateIso8601(tz).parse(i + "-07-05T14:30:10.123")); assertEquals(create(i, 1, 5, 14, 30, 10, 123), new DateIso8601(gmt).parse(i + "-01-05T14:30:10.123")); assertEquals(create(i, 7, 5, 14, 30, 10, 123), new DateIso8601(gmt).parse(i + "-07-05T14:30:10.123")); assertEquals(create(i, 1, 5, 14, 30, 10, 123), new DateIso8601(tz).parse(i + "-01-05T14:30:10.123Z")); assertEquals(create(i, 7, 5, 14, 30, 10, 123), new DateIso8601(tz).parse(i + "-07-05T14:30:10.123Z")); } }
@Test public void test() { TimeZone tz = TimeZone.getTimeZone("Europe/Berlin"); assertEquals(create(2007, 4, 5, 12, 0, 10, 123), new DateIso8601(tz).parse("2007-04-05T14:30:10.123+02:30")); assertEquals(create(2007, 4, 5, 17, 0, 10, 123), new DateIso8601(tz).parse("2007-04-05T14:30:10.123-0230")); assertEquals(create(2007, 4, 5, 14, 30, 10, 123), new DateIso8601(tz).parse("2007-04-05T14:30:10.123Z")); assertEquals(create(2007, 4, 5, 12, 30, 10, 123), new DateIso8601(tz).parse("2007-04-05T14:30:10.123")); assertEquals(create(2007, 4, 5, 14, 30, 10, 0), new DateIso8601(tz).parse("2007-04-05T14:30:10Z")); assertEquals(create(2007, 4, 5, 12, 30, 10, 0), new DateIso8601(tz).parse("2007-04-05T14:30:10")); assertEquals(create(2007, 4, 5, 14, 30, 10, 0), new DateIso8601(tz).parse("20070405T143010Z")); assertEquals(create(2007, 4, 5, 12, 30, 10, 0), new DateIso8601(tz).parse("20070405T143010")); assertEquals(create(2007, 4, 5, 14, 30, 0, 0), new DateIso8601(tz).parse("2007-04-05T14:30Z")); assertEquals(create(2007, 4, 5, 12, 30, 0, 0), new DateIso8601(tz).parse("2007-04-05T14:30")); assertEquals(create(2007, 4, 5, 14, 30, 0, 0), new DateIso8601(tz).parse("20070405T1430Z")); assertEquals(create(2007, 4, 5, 12, 30, 0, 0), new DateIso8601(tz).parse("20070405T1430")); assertEquals(create(2007, 4, 5, 14, 0, 0, 0), new DateIso8601(tz).parse("2007-04-05T14Z")); assertEquals(create(2007, 4, 5, 12, 0, 0, 0), new DateIso8601(tz).parse("2007-04-05T14")); assertEquals(create(2007, 4, 5, 14, 0, 0, 0), new DateIso8601(tz).parse("20070405T14Z")); assertEquals(create(2007, 4, 5, 12, 0, 0, 0), new DateIso8601(tz).parse("20070405T14")); assertEquals(create(2007, 4, 5, 12, 0, 0, 0), new DateIso8601(tz).parse("20070405T14+02")); assertEquals(create(2007, 4, 5, 0, 0, 0, 0), new DateIso8601(tz).parse("2007-04-05")); assertEquals(create(2007, 4, 5, 0, 0, 0, 0), new DateIso8601(tz).parse("20070405")); }
@Test public void testFormat() { TimeZone timeZone = TimeZone.getTimeZone("Europe/Berlin"); assertEquals("1900-10-19T00:00:00.000Z", format(new DateIso8601().parse("1900-10-19"))); assertEquals("1901-01-01T00:00:00.000Z", format(new DateIso8601().parse("1901-01-01"))); assertEquals("1901-01-01T23:59:59.999Z", format(new DateIso8601().parse("1901-01-01T23:59:59.999Z"))); assertEquals("1900-01-01T14:30:10.123Z", format(new DateIso8601().parse("1900-01-01T14:30:10.123Z"))); assertEquals("1900-12-31T14:30:10.123Z", format(new DateIso8601().parse("1900-12-31T14:30:10.123Z"))); assertEquals("2007-12-31T14:30:10.123Z", format(new DateIso8601().parse("2007-12-31T14:30:10.123Z"))); assertEquals("2007-01-01T14:30:10.123Z", format(new DateIso8601().parse("2007-01-01T14:30:10.123Z"))); assertEquals("2007-01-01T23:59:59.999Z", format(new DateIso8601().parse("2007-01-01T23:59:59.999Z"))); assertEquals("2007-01-01T00:00:00.000Z", format(new DateIso8601().parse("2007-01-01"))); assertEquals("2007-04-05T19:00:10.123+0200", format(new DateIso8601().parse("2007-04-05T14:30:10.123-0230"), timeZone)); String s = "2007-04-05T14:30:10.123Z"; assertEquals(s, format(new DateIso8601().parse(s))); s = "2007-04-05T14:30:10.123-0230"; assertEquals("2007-04-05T17:00:10.123Z", format(new DateIso8601().parse(s))); assertEquals("2007-04-05T19:00:10.123+0200", format(new DateIso8601().parse(s), timeZone)); for (int i = 1900; i <= 2100; i++) { assertEquals(i + "-01-01T14:30:10.123Z", format(new DateIso8601().parse(i + "-01-01T14:30:10.123Z"))); assertEquals(i + "-12-31T14:30:10.123Z", format(new DateIso8601().parse(i + "-12-31T14:30:10.123Z"))); assertEquals(i + "-06-15T14:30:10.123Z", format(new DateIso8601().parse(i + "-06-15T14:30:10.123Z"))); assertEquals(i + "-02-28T14:30:10.123Z", format(new DateIso8601().parse(i + "-02-28T14:30:10.123Z"))); Date date = new DateIso8601().parse(i + "-02-05T23:30:10.123Z"); if (timeZone.inDaylightTime(date)) assertEquals(i + "-02-06T01:30:10.123+0200", format(date, timeZone)); else assertEquals(i + "-02-06T00:30:10.123+0100", format(date, timeZone)); } }