Java

날짜 클래스 (자바 8 이후)

개발게발 2023. 6. 27. 00:44

LocalDate

로컬 날짜 클래스

LocalDate nowDate = LocalDate.now();
LocalDate date = LocalDate.of(int year, int month, int dayOfMonth)
  • now() : 기본 시간대의 시스템 시계에서 현재 날짜를 가져옴
  • of() : 년, 월, 일에서 인스턴스를 가져옴

 


LocalDate nowDate = LocalDate.now();
LocalDate date = LocalDate.of(2023, 1, 1);

System.out.println(nowDate);
System.out.println(date);
2023-06-26
2023-01-01

 

 

 

LocalTime

로컬 시간 클래스

LocalTime nowTime = LocalTime.now();
LocalTime time = LocalTime.of(int hour, int minute, int second, int nanoOfSecond)
  • now() : 기본 시간대의 시스템 시계에서 현재 시간을 가져옴
  • of() : LocalTime시간, 분, 초 및 나노초에서 인스턴스를 가져옴

 


LocalTime nowTime = LocalTime.now();
LocalTime time = LocalTime.of(12, 26, 2, 9);

System.out.println(nowTime);
System.out.println(time);
18:31:02.982530500
12:26:02.000000009

 

 

LocalDateTime

로컬 날짜 및 시간 클래스

LocalDateTime nowDateTime = LocalDateTime.now();
LocalDateTime dateTime = LocalDateTime.of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond);
  • now() : 기본 시간대의 시스템 시계에서 현재 날짜-시간을 가져옴
  • of() : 년, 월, 일, 시, 분, 초 및 나노초에서 인스턴스를 가져옴

 


LocalDateTime nowDateTime = LocalDateTime.now();
LocalDateTime dateTime = LocalDateTime.of(2023, 1, 1, 12, 26, 2, 9);

System.out.println(nowDateTime);
System.out.println(dateTime);
2023-06-26T18:49:04.183542
2023-01-01T12:26:02.000000009

 

 

ZonedDateTime

ISO-8601 캘린더 시스템에서 타임존의 날짜/시간

ZonedDateTime nowZone = ZonedDateTime.now();

System.out.println(nowZone);
2023-06-26T22:23:25.631014900+09:00[Asia/Seoul]

 

 

ZoneId

타임존 ID

  • getAvailableZoneIds() : 사용 가능한 타이존 ID들 가져옴
  • from() : 시간 객체에서 타임존 ID를 가져옴
  • of() : 유효한 타임존 ID인지 판별
ZonedDateTime nowZone = ZonedDateTime.now(ZoneId.of("America/Los_Angeles"));

System.out.println(nowZone);
2023-06-26T06:44:57.322317600-07:00[America/Los_Angeles]

 

 

DateTimeFormatter

 날짜 포맷 변경

LocalDate nowdate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String formatStr = nowdate.format(formatter);
System.out.println(formatStr);

String str = "2023년 01월 01일 12시 26분 02초";
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초");
LocalDateTime localDateTime = LocalDateTime.parse(str, dateTimeFormatter);
System.out.println(localDateTime);
2023/06/27
2023-01-01T12:26:02

 

 

DayOfWeek

요일을 가져옴

LocalDate date = LocalDate.of(2023, 1, 1);
DayOfWeek dayOfWeek = date.getDayOfWeek();
System.out.println(dayOfWeek);
System.out.println(dayOfWeek.getValue());
SUNDAY
7

 

 

출처 :

https://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html

https://scshim.tistory.com/251