#자바 LocalDate, LocalTime, LocalDateTime 클래스 사용법(Date, Calendar 대체)
#java.time 패키지
-자바에서 날짜와 시간을 다루는 클래스들이 담긴 패키지입니다.
-Date와 Calendar의 단점을 보완하여 나온 패키지입니다.
-JDK1.8 버전에 추가되었습니다.
-핵심 클래스로 LocalDate, LocalTime, LocalDateTime 등이 있습니다.
#객체 생성 방법
-now() :현재 날짜와 시간을 반환합니다.
-of() :매개변수로 값을 지정할 수 있습니다.
#LocalDate
-날짜를 표현할 때 사용합니다.
public class SimpleDateFormatExam {
public static void main(String[] args) {
LocalDate date1 = LocalDate.now();
LocalDate date2 = LocalDate.of(2022, 11, 23);
System.out.println(date1); // 2022-11-22
System.out.println(date2); // 2022-11-23
}
}
#LocalTime
-시간을 표한할 때 사용합니다.
public class SimpleDateFormatExam {
public static void main(String[] args) {
LocalTime time1 = LocalTime.now();
LocalTime time2 = LocalTime.of(22,15,50);
System.out.println(time1); // 21:36:21.275515
System.out.println(time2); // 22:15:50
}
}
#LocalDateTime
-날짜와 시간 모두 표현할 때 사용합니다.
public class SimpleDateFormatExam {
public static void main(String[] args) {
LocalDateTime dateTime1 = LocalDateTime.now();
LocalDateTime dateTime2 = LocalDateTime.of(2022,11,22,10,15,50);
System.out.println(dateTime1); // 2022-11-22T21:37:45.977473200
System.out.println(dateTime2); // 2022-11-22T10:15:50
}
}
#get() 메서드를 사용하여 특정 필드의 값을 가져올 수 있습니다.
-Calendar와 다른 점은 LocalDateTime 월의 인덱스는 1~12(Calendar는 0~11)이며 요일은 월요일 1~일요일 7(Calendar 일요일 1~토요일 7)입니다.
#주요 get 메서드 종류
-getYear() :년도(2022)를 반환합니다.
-getMonthValue() :월(11)을 반환합니다.
-getDayOfMonth() :일(22)을 반환합니다.
-getHour() :시간(21)을 반환합니다.
-getMinute() :분(44)을 반환합니다.
-getSecond() :초(55)를 반환합니다.
-getNano() :나노초(805075800)를 반환합니다.
public class SimpleDateFormatExam {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime.getYear()); // 2022
System.out.println(dateTime.getMonthValue()); // 11
System.out.println(dateTime.getDayOfMonth()); // 22
System.out.println(dateTime.getHour()); // 21
System.out.println(dateTime.getMinute()); // 44
System.out.println(dateTime.getSecond()); // 55
System.out.println(dateTime.getNano()); // 805075800
}
}
#ZonedDateTime
-LocalDateTime + 시간대를 표현하는 클래스입니다.
public class SimpleDateFormatExam {
public static void main(String[] args) {
ZonedDateTime dateTime = ZonedDateTime.now();
System.out.println(dateTime); // 2022-11-22T21:52:56.986823900+09:00[Asia/Seoul]
}
}
#toLocalDate(), toLocalTime() 메서드를 사용해서 LocalDateTime을 LocalDate나 LocalTime으로 변환할 수 있습니다.
public class SimpleDateFormatExam {
public static void main(String[] args) {
LocalDateTime dateTime = LocalDateTime.now();
System.out.println(dateTime.toLocalDate()); // 2022-11-22
System.out.println(dateTime.toLocalTime()); // 21:54:39.005349900
}
}
#Period와 Duration 클래스를 사용하여 날짜와 시간의 차이를 계산할 수 있습니다.
-Period :날짜의 차이를 계산하는데 사용합니다.
-Duration :시간의 차이를 계산하는데 사용합니다.
-between() :날짜와 시간의 차이를 계산하는데 사용하는 메서드입니다.
public class SimpleDateFormatExam {
public static void main(String[] args) {
LocalDate date1 = LocalDate.of(2022, 10, 11);
LocalDate date2 = LocalDate.of(2022, 12, 21);
Period pe = Period.between(date1, date2);
System.out.println(pe); // P2M10D P 2달 10일
LocalTime time1 = LocalTime.of(00, 10, 11);
LocalTime time2 = LocalTime.of(11, 12, 21);
Duration du = Duration.between(time1, time2);
System.out.println(du); // PT11H2M10S PT 10시간 2분 10초
}
}
댓글