util 패키지에 Date(최조로 만들어짐 -> 지역화 고려X), Calendar
time 패키지에 대해
Date date = new Date();
System.out.println(date.toString());
// java.util.SimpleDateFormat 이용하기
SimpleDateFormat ft = new SimpleDateFormat ("yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println(ft.format(date));
// 현재 시간을 Long값으로 구하는 방법
System.out.println(date.getTime());
// System이 가지고 있는 currentTimeMillis()메소드를 이용해도 됩니다.
long today = System.currentTimeMillis();
System.out.println(today);
// 시간들 사이 연산 => 코드 사이 걸린 시간!
System.out.println(today -date.getTime());
Calendar cal = Calendar.getInstance();
int yyyy = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1; // 월은 0부터 시작합니다.
int date = cal.get(Calendar.DATE);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
// add메소드를 이용하면 쉽게 다음 날짜나 이전 날짜를 구할 수 있습니다.
// 현재 칼랜더에 시간을 5시간 더하는 방법. 5를 -5로 수정하면 5시가 전을 구할 수 있습니다!
cal.add(Calendar.HOUR, 5);
// add메소드에서 cal 객체 자체의 시간이 바뀌어 버림!
Java에서 제공하는 Date, Time API는 부족한 기능 지원을 포함한 여러가지 문제점을 가지고 있었다. JDK 코어에서 이런 문제점들을 해결하고 더 좋고 직관적인 API들을 제공하기 위해 새롭게 재 디자인한 Date, Time API를 Java SE 8부터 제공한다.
of 메서드
를 호출하면 되고, 다른 타입으로 변경할 경우에는 from 메서드
를 호출하면 된다. LocalDateTime timePoint = LocalDateTime.now(); // 현재의 날짜와 시간
// 2012년 12월 12일의 시간에 대한 정보를 가지는 LocalDate객체를 만드는 방법
LocalDate ld1 = LocalDate.of(2012, Month.DECEMBER, 12); // 2012-12-12 from values
// 17시 18분에 대한 LocalTime객체를 구한다.
LocalTime lt1 = LocalTime.of(17, 18); // 17:18 (17시 18분)the train I took home today
// 10시 15분 30초라는 문자열에 대한 LocalTime객체를 구한다.
LocalTime lt2 = LocalTime.parse("10:15:30"); // From a String
LocalDate theDate = timePoint.toLocalDate();
Month month = timePoint.getMonth();
int day = timePoint.getDayOfMonth();
int hour = timePoint.getHour();
int minute = timePoint.getMinute();
int second = timePoint.getSecond();
// 달을 숫자로 출력한다 1월도 1부터 시작하는 것을 알 수 있습니다.
System.out.println(month.getValue() + "/" + day + " " + hour + ":" + minute + ":" + second);