Java 8 이후부터는 java.time 패키지의 클래스들을 이용하여 날짜와 시간을 표현할 수 있다.
Java 8 이전은 java.util.Date, java.util.Calendar 클래스를 이용할 수 있지만 대부분 deprecated 되었다. 가능하면 사용하지 않는 것이 좋다.
날짜
를 표현하는 클래스// 현재 날짜 구하기 (시스템 시계, 시스템 타임존)
LocalDate today = LocalDate.now();
// 특정 날짜 구하기
// static LocalDate of(int year, int month, int dayOfMonth)
LocalDate xMas = LocalDate.of(2022, 12, 25);
System.out.println(today); // 2022-01-21
System.out.println(xMas); // 2022-12-25
시간
을 표현하는 클래스// 현재 시간 구하기 (시스템 시계, 시스템 타임존)
LocalTime present = LocalTime.now();
// 특정 시간 구하기
// static LocalTime of(int hour, int minute, int second, int nanoOfSecond)
LocalTime xMasTime = LocalTime.of(02, 02, 00, 100000000);
System.out.println(present); // 09:21:50.634
System.out.println(xMas); // 02:02:00.100
날짜와 시간
을 표현하는 클래스// 현재 날짜, 시간 구하기 (시스템 시계, 시스템 타임존)
LocalDateTime now = LocalDateTime.now();
// 특정 시간 구하기
// static LocalDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond)
LocalDateTime xMas = LocalDateTime.of(2022, 12, 25, 01, 10, 03, 100000000);
System.out.println(now); // 2022-01-21T04:54:57.501
System.out.println(xMas); // 2022-12-25T01:10:03.100
ChronoField
: TemporalField 인터페이스를 구현하는 열거체LocalTime present = LocalTime.now();
String ampm;
if(present.get(ChronoField.AMPM_OF_DAY) == 0) {
ampm = "오전";
} else {
ampm = "오후";
}
System.out.println("지금은 " + ampm + " " + present.get(ChronoField.HOUR_OF_AMPM) + "시입니다."); // 지금은 오전 9시입니다.