@Test public void parseBasicWeekDate() throws ParseException { PlainTimestamp start = PlainTimestamp.of(2012, 4, 1, 14, 15); PlainTimestamp end = PlainTimestamp.of(2012, 4, 5, 16, 0); TimestampInterval expected = TimestampInterval.between(start, end); assertThat(TimestampInterval.parseISO("2012W137T1415/2012W144T1600"), is(expected)); }
@Test public void parseExtendedOrdinalDate() throws ParseException { PlainTimestamp start = PlainTimestamp.of(2012, 4, 1, 14, 15); PlainTimestamp end = PlainTimestamp.of(2012, 4, 5, 16, 0); TimestampInterval expected = TimestampInterval.between(start, end); assertThat(TimestampInterval.parseISO("2012-092T14:15/2012-096T16:00"), is(expected)); }
@Test public void parseAbbreviatedExtendedWeekDate() throws ParseException { PlainTimestamp start = PlainTimestamp.of(2012, 4, 1, 14, 15); PlainTimestamp end = PlainTimestamp.of(2012, 4, 5, 16, 0); TimestampInterval expected = TimestampInterval.between(start, end); assertThat(TimestampInterval.parseISO("2012-W13-7T14:15/W14-4T16:00"), is(expected)); }
@Test public void parseAbbreviatedWithoutDateOrT() throws ParseException { PlainTimestamp start = PlainTimestamp.of(2012, 4, 30, 14, 15); PlainTimestamp end = PlainTimestamp.of(2012, 4, 30, 16, 0); TimestampInterval expected = TimestampInterval.between(start, end); assertThat(TimestampInterval.parseISO("2012-04-30T14:15/16:00"), is(expected)); }
@Test public void parsePeriodAndExtendedWeekDate() throws ParseException { PlainTimestamp start = PlainTimestamp.of(2012, 4, 1, 14, 15); PlainTimestamp end = PlainTimestamp.of(2012, 4, 5, 16, 0); TimestampInterval expected = TimestampInterval.between(start, end); assertThat(TimestampInterval.parseISO("P0000-00-04T01:45/2012-W14-4T16:00"), is(expected)); }
@Test public void parsePeriodAndExtendedCalendarDate() throws ParseException { PlainTimestamp start = PlainTimestamp.of(2012, 4, 1, 14, 15); PlainTimestamp end = PlainTimestamp.of(2012, 4, 5, 16, 0); TimestampInterval expected = TimestampInterval.between(start, end); assertThat(TimestampInterval.parseISO("P4DT1H45M/2012-04-05T16:00"), is(expected)); }
@Test public void startAtMidnight() { Moment moment = PlainTimestamp.of(2015, 7, 17, 18, 1).atUTC(); HijriCalendar hijri = HijriCalendar.ofUmalqura(1436, 10, 1); assertThat(hijri.atTime(18, 1).at(ZonalOffset.UTC, StartOfDay.MIDNIGHT), is(moment)); assertThat( moment.toGeneralTimestamp( HijriCalendar.family(), HijriCalendar.VARIANT_UMALQURA, ZonalOffset.UTC, StartOfDay.MIDNIGHT), is(hijri.atTime(18, 1))); }
@Test public void startInEvening() { Moment moment = PlainTimestamp.of(2015, 7, 17, 18, 1).atUTC(); HijriCalendar hijri = HijriCalendar.ofUmalqura(1436, 10, 2); assertThat(hijri.atTime(18, 1).at(ZonalOffset.UTC, StartOfDay.EVENING), is(moment)); GeneralTimestamp<HijriCalendar> tsp = moment.toGeneralTimestamp( HijriCalendar.family(), HijriCalendar.VARIANT_UMALQURA, ZonalOffset.UTC, StartOfDay.EVENING); assertThat(tsp.toDate(), is(hijri)); assertThat(tsp.toTime(), is(PlainTime.of(18, 1))); }