package net.time4j.i18n; import net.time4j.Moment; import net.time4j.PlainDate; import net.time4j.PlainTime; import net.time4j.PlainTimestamp; import net.time4j.format.CalendarText; import net.time4j.format.DisplayMode; import net.time4j.format.expert.ChronoFormatter; import net.time4j.tz.OffsetSign; import net.time4j.tz.Timezone; import net.time4j.tz.ZonalOffset; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import java.util.Locale; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @RunWith(JUnit4.class) public class FormatPatternTest { @Test public void patternForUnsupportedLocale() { String patternXX = CalendarText.patternForDate(DisplayMode.FULL, new Locale("xx")); String patternRoot = CalendarText.patternForDate(DisplayMode.FULL, Locale.ROOT); assertThat(patternXX, is(patternRoot)); } @Test public void datePattern() { PlainDate date = PlainDate.of(2015, 9, 8); assertThat( PlainDate.formatter(DisplayMode.FULL, Locale.GERMANY).format(date), is("Dienstag, 8. September 2015")); assertThat( PlainDate.formatter(DisplayMode.LONG, Locale.GERMANY).format(date), is("8. September 2015")); assertThat( PlainDate.formatter(DisplayMode.MEDIUM, Locale.GERMANY).format(date), is("08.09.2015")); assertThat( PlainDate.formatter(DisplayMode.SHORT, Locale.GERMANY).format(date), is("08.09.15")); assertThat( ChronoFormatter.ofDateStyle(DisplayMode.MEDIUM, Locale.GERMANY).format(date), is("08.09.2015")); } @Test public void timePattern() { PlainTime time = PlainTime.of(17, 45, 30); assertThat( PlainTime.formatter(DisplayMode.FULL, Locale.GERMANY).format(time), is("17:45 Uhr")); // ohne Offset!!! assertThat( PlainTime.formatter(DisplayMode.LONG, Locale.GERMANY).format(time), is("17:45:30")); // ohne Offset!!! assertThat( PlainTime.formatter(DisplayMode.MEDIUM, Locale.GERMANY).format(time), is("17:45:30")); // ohne Offset!!! assertThat( PlainTime.formatter(DisplayMode.SHORT, Locale.GERMANY).format(time), is("17:45")); // ohne Offset!!! assertThat( ChronoFormatter.ofTimeStyle(DisplayMode.MEDIUM, Locale.GERMANY).format(time), is("17:45:30")); // ohne Offset!!! } @Test public void timestampPattern() { PlainTimestamp tsp = Moment.UNIX_EPOCH.toZonalTimestamp(ZonalOffset.ofHours(OffsetSign.AHEAD_OF_UTC, 1)); assertThat( ChronoFormatter.ofTimestampStyle(DisplayMode.FULL, DisplayMode.FULL, Locale.GERMANY).format(tsp), is("Donnerstag, 1. Januar 1970 um 01:00:00")); // ohne Offset!!! assertThat( ChronoFormatter.ofTimestampStyle(DisplayMode.LONG, DisplayMode.LONG, Locale.GERMANY).format(tsp), is("1. Januar 1970 um 01:00:00")); // ohne Offset!!! assertThat( ChronoFormatter.ofTimestampStyle(DisplayMode.MEDIUM, DisplayMode.MEDIUM, Locale.GERMANY).format(tsp), is("01.01.1970, 01:00:00")); // ohne Offset!!! assertThat( ChronoFormatter.ofTimestampStyle(DisplayMode.SHORT, DisplayMode.SHORT, Locale.GERMANY).format(tsp), is("01.01.70, 01:00")); // ohne Offset!!! assertThat( ChronoFormatter.ofStyle(DisplayMode.MEDIUM, Locale.GERMANY, PlainTimestamp.axis()).format(tsp), is("01.01.1970, 01:00:00")); // ohne Offset!!! } @Test public void dateTimePattern() { Moment m = Moment.UNIX_EPOCH; assertThat( Moment.formatter(DisplayMode.FULL, Locale.GERMANY, Timezone.of("Europe/Berlin").getID()).format(m), is("Donnerstag, 1. Januar 1970 um 01:00:00 Mitteleuropäische Zeit")); assertThat( Moment.formatter(DisplayMode.LONG, Locale.GERMANY, Timezone.of("Europe/Berlin").getID()).format(m), is("1. Januar 1970 um 01:00:00 MEZ")); assertThat( Moment.formatter(DisplayMode.MEDIUM, Locale.GERMANY, Timezone.of("Europe/Berlin").getID()).format(m), is("01.01.1970, 01:00:00")); assertThat( Moment.formatter(DisplayMode.SHORT, Locale.GERMANY, Timezone.of("Europe/Berlin").getID()).format(m), is("01.01.70, 01:00")); assertThat( ChronoFormatter.ofMomentStyle( DisplayMode.MEDIUM, DisplayMode.MEDIUM, Locale.GERMANY, Timezone.of("Europe/Berlin").getID()).format(m), is("01.01.1970, 01:00:00")); } }