package net.time4j.tz.olson; import net.time4j.CalendarUnit; import net.time4j.Moment; import net.time4j.ZonalDateTime; import net.time4j.format.expert.ChronoFormatter; import net.time4j.format.expert.PatternType; 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 static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import java.text.ParseException; import java.util.Locale; import java.util.concurrent.TimeUnit; @RunWith(JUnit4.class) public class SamoaTest { @Test public void samoa() throws ParseException { ChronoFormatter<Moment> f = ChronoFormatter.ofMomentPattern("uuuu-MM-dd'T'HH:mm'['VV']'", PatternType.CLDR, Locale.ROOT, ZonalOffset.UTC); ZonalDateTime zdt1 = ZonalDateTime.parse("2011-12-28T00:00[Pacific/Apia]", f); ZonalDateTime zdt2 = ZonalDateTime.parse("2011-12-31T00:00[Pacific/Apia]", f); long utcDays = zdt1.toMoment().until(zdt2.toMoment(), TimeUnit.DAYS); // 2 long localDays = CalendarUnit.DAYS.between(zdt1.toTimestamp(), zdt2.toTimestamp()); // 3 assertThat(utcDays, is(2L)); assertThat(localDays, is(3L)); } }