1582년 10월 4일 => 1582년 10월 15일(달력변경)
public class OldJdkDateTest {
@Test
public void shouldGetAfterOneDay() {
TimeZone utc = TimeZone.getTimeZone("UTC");
Calendar calendar = Calendar.getInstance(utc);
calendar.set(1582, Calendar.OCTOBER , 4);
String pattern = "yyyy.MM.dd";
String theDay = toString(calendar, pattern, utc);
assertThat(theDay).isEqualTo("1582.10.04");
calendar.add(Calendar.DATE, 1);
String nextDay = toString(calendar, pattern, utc);
assertThat(nextDay).isEqualTo("1582.10.05");
}
private String toString(Calendar calendar, String pattern, TimeZone zone) {
SimpleDateFormat format = new SimpleDateFormat(pattern);
format.setTimeZone(zone);
return format.format(calendar.getTime());
}
assertThat(nextDay).isEqualTo("1582.10.15");
1988년 5월 7일 23시, 1시간 후는?(썸머타임)
@Test
public void shouldGetAfterOneHour() {
TimeZone seoul = TimeZone.getTimeZone("Asia/Seoul");
Calendar calendar = Calendar.getInstance(seoul);
calendar.set(1988, Calendar.MAY , 7, 23, 0);
String pattern = "yyyy.MM.dd HH:mm";
String theTime = toString(calendar, pattern, seoul);
assertThat(theTime).isEqualTo("1988.05.07 23:00");
calendar.add(Calendar.HOUR_OF_DAY, 1);
String after1Hour = toString(calendar, pattern, seoul);
assertThat(after1Hour).isEqualTo("1988.05.08 00:00");
}
assertThat(seoul.inDaylightTime(calendar.getTime())).isTrue();
assertThat(after1Hours).isEqualTo("1988.05.08 01:00");
서울 1961년 8월 9일 23시 59분의 1분 후는?(시간대변경)
@Test
public void shouldGetAfterOneMinute() {
TimeZone seoul = TimeZone.getTimeZone("Asia/Seoul");
Calendar calendar = Calendar.getInstance(seoul);
calendar.set(1961, Calendar.AUGUST, 9, 23, 59);
String pattern = "yyyy.MM.dd HH:mm";
String theTime = toString(calendar, pattern, seoul);
assertThat(theTime).isEqualTo("1961.08.09 23:59");
calendar.add(Calendar.MINUTE, 1);
String after1Minute = toString(calendar, pattern, seoul);
assertThat(after1Minute).isEqualTo("1961.08.10 00:00");
}
assertThat(after1Minute ).isEqualTo("1961.08.10 00:30");
협정세계시 2012년 6월 30일 23시 59분 59초의 2초 후는?(윤초)
@Test
public void shouldGetAfterTwoSecond() {
TimeZone utc = TimeZone.getTimeZone("UTC");
Calendar calendar = Calendar.getInstance(utc);
calendar.set(2012, Calendar.JUNE, 30, 23, 59, 59);
String pattern = "yyyy.MM.dd HH:mm:ss";
String theTime = toString(calendar, pattern, utc);
assertThat(theTime).isEqualTo("2012.06.30 23:59:59");
calendar.add(Calendar.SECOND, 2);
String afterTwoSeconds = toString(calendar, pattern, utc);
assertThat(afterTwoSeconds).isEqualTo("2012.07.01 00:00:01");
}