지금 이 순간을 기계 시간으로 표현하는 방법
/*
기준시 UTC, GMT
*/
Instant instant = Instant.now(); // 2022-08-28T22:23:53.912348Z
/*
나의 Local시간
*/
ZoneId zone = ZoneId.systemDefault(); // Asia/Seoul
ZonedDateTime zonedDateTime = instant.atZone(zone); // 2022-08-29T07:26:22.135012+09:00[Asia/Seoul]
인류용 일시를 표현하는 방법
/*
서버의 Zone정보를 참고해서 해당 Local 시간을 리턴한다.
*/
LocalDateTime now = LocalDatetime.now(); // 2022-08-29T07:28:10.781728
/*
of의 인자값은 순서대로 년도, 월, 일, 시간, 분, 초이다.
*/
LocalDateTime birthDay = LocalDateTime.of(1989, Month.MARCH, 4, 0, 0, 0);
ZonedDateTime nowInKorea = ZonedDateTime.now(ZoneId.of("Asia/Seoul"));
기간을 표현하는 방법
LocalDate today = LocalDate.now();
LocalDate nextBirthday = LocalDate.of(2023, Month.MARCH, 3);
Period period = Period.between(today, nextBirthday);
파싱 또는 포매팅
LocalDateTime now = LocalDatetime.now();
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
String format = now.format(dateTimeFormatter);
LocalDate parse = LocalDate.parse("03/04/1989", dateTimeFormatter);
레거시 API 지원
https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#predefined
https://codeblog.jonskeet.uk/2017/04/23/all-about-java-util-date/
https://docs.oracle.com/javase/tutorial/datetime/overview/index.html
https://docs.oracle.com/javase/tutorial/datetime/iso/overview.html