▶ java.util.Date
- 날짜와 시간을 다룰 목적으로 만들어진 클래스
- Date의 메서드는 대부분 deprecated되었지만, 여전히 쓰임
▶ java.util.Calendar
- Date클래스를 개선한 클래스, 여전히 단점 존재
▶ java.time패키지
- Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공(JDK1.8)
- 추상 클래스이므로 getInstance()를 통해 구현된 객체를 얻어야 함
- Date, Calendar의 단점을 보완하기 위해 추가된 패키지
- 이 패키지에 속한 클래스들은 모두 '불변'
- java.time패키지의 핵심
- now()는 현재 날짤 시간을, of()는 특정 날짜 시간을 지정할 때 사용
- 일 단위나 초 단위로도 지정가능
- parse()로 문자열을 LocalDatesk LocalTime으로 변환할 수 있음
- LocalDate와 LocalTime에서 특정 필드의 값 가져오는 메서드
- get(), getLong()에 사용할 수 있는 필드의 목록 (*는 getLong()사용)
- with(), plus(), minus()로 특정 필드의 값을 변경(새로운 객체가 반환)
- java.time.format패키지 : 형식화와 관련된 클래스 제공
- DateTimeFromatter의 format()를 사용해서 날짜와 시간을 형식화
- 출력형식의 작성에 사용되는 기호의 목록
- parse()를 이용하면 문자열을 날짜와 시간으로 파싱할 수 있다.
- DateTimeFormatter에 정의된 형식을 사용할 때는 다음과 같이 한다.
- 자주 사용되는 형식은 ISO_LOCAL_DATE 등을 사용하지 않고 파싱 가능
- ofPattern()으로 파싱할 수도 있다.
주석으로 설명..
package ch10;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class S03 {
public static void main(String[] args) {
// 현재 시간을 가져온다
// 실행한 컴퓨터의 시간대를 가져온다(Local)
LocalDate now = LocalDate.now();
System.out.println(now);
// plus minus / 예약 같은 기능을 만들 때 사용한다
LocalDate plusDays = now.plusDays(2);
System.out.println(plusDays);
// parse -> 다른 타입의 데이터나 가공되지 않은 데이터를 사용할 데이터로 바꾸는 작업
LocalDateTime parse = LocalDateTime.parse("2023-07-08T14:21:01.748084800");
System.out.println(parse);
DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초");
LocalDateTime parse2 = LocalDateTime.parse("1998년 01월 30일 00시 00분 00초", ofPattern);
System.out.println(parse2);
System.out.println(LocalDate.now());
System.out.println(LocalTime.now());
}
}