package net.time4j.i18n; import net.time4j.PlainTime; import net.time4j.PlainTimestamp; import net.time4j.format.Leniency; import net.time4j.format.expert.ChronoFormatter; import net.time4j.format.expert.PatternType; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import java.text.ParseException; import java.util.Locale; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @RunWith(JUnit4.class) public class CLDR24Test { @Test public void formatMidnightAtEndOfDay() throws ParseException { assertThat( ChronoFormatter.ofTimePattern( "HH:mm", PatternType.CLDR_24, Locale.ROOT ).with(Leniency.STRICT).format(PlainTime.midnightAtEndOfDay()), is("24:00")); } @Test public void parseMidnightAtEndOfDay() throws ParseException { assertThat( ChronoFormatter.ofTimePattern( "HH:mm", PatternType.CLDR_24, Locale.ROOT ).with(Leniency.STRICT).parse("24:00"), is(PlainTime.midnightAtEndOfDay())); } // Note: 24:00 not fully supported in context of PlainTimestamp @Test public void formatMidnightAtEndOfDayTSP() throws ParseException { assertThat( ChronoFormatter.ofTimestampPattern( "dd.MM.yyyy HH:mm", PatternType.CLDR_24, Locale.ROOT ).format(PlainTimestamp.of(2015, 6, 30, 24, 0)), is("01.07.2015 00:00")); } // Note: 24:00 not fully supported in context of PlainTimestamp @Test public void parseMidnightAtEndOfDayTSP() throws ParseException { assertThat( ChronoFormatter.ofTimestampPattern( "dd.MM.yyyy HH:mm", PatternType.CLDR_24, Locale.ROOT ).parse("30.06.2015 24:00"), // throws an exception in strict mode is(PlainTimestamp.of(2015, 6, 30, 24, 0))); } }