[Java] 날짜, 시간 다루기

해니·2023년 12월 6일
0

Java

목록 보기
7/34
post-thumbnail

타임존?

타임존은 동일한 로컬 시간을 따르는 지역을 의미한다. 보통 국가별로 고유 타임존을 사용하며, 면적이 넓은 나라는 지역별로 다른 타임존을 사용한다. 시스템 또는 플랫폼 간의 의사소통 방식으로서의 API가 대중화되고 서비스 지역이 전세계로 확장되면서 API 요청 및 응답에 있어 타임존 정보를 적절하게 인식하고 가공하는 작업이 중요해졌다



타임존의 종류


  1. GMT(GreenWich Mean Time)
  • 영국 그리니치 천문대 기준으로 하는 태양 시간
  • 한국의 타임존은 보통 GMT +09:00 으로 표현된다.

  1. UTC
  • GMT를 대체하기 위한 새로운 표준
  • 지구 자전 주기의 흐름이 늦어지고 있는 문제를 해결한 시간
  • GMT와 아주 미세한 차이인데, 소프트웨어에서 사용할 때는 UTC가 더 정확한 표현이다.

  1. Offset
  • UTC와의 차이를 나타낸 것
    • UTC+09:00에서 +09:00의 의미는 UTC 기준 시간보다 9시간 빠르다는 의미이다.
    • UTC 00:00 이면, 한국시간으로 09:00라는 것이다

  1. ISO 8610
  • 날짜와 시간 관련된 데이터 교환을 다루는 국제 표준
  • 형식
    • 날짜 : 년-월-일의 형태로 나와있다.
    • T : 날짜 뒤에 시간이 오는 것을 표시해주는 문자
    • 시간 : 시:분:초 형태. 언어에 따라 초 뒤에 소수점 형태로 milliseconds가 표시되기도 한다.
    • Timezone Offset : 시간 뒤에 +/-시간:분 형태 나타냄
    • Z or +00:00 : UTC 기준시를 나태내는 표시
// 로컬 시간을 의미하는 ISO 8601 문자열
2023-11-06T15:00:00.000

// UTC(GMT) 시간을 의미하는 ISO 8601 문자열
2023-11-06T06:00:00.000Z

// 로컬 시간을 의미하면서 UTC(GMT) 대비 +09:00 임을 의미하는 ISO 8601 문자열
2023-11-06T15:00:00.000+09:00



LocalDate (yyyy-MM-dd)

//날짜 출력
LocalDate date1 = LocalDate.now();
System.out.println(date1); //2022-04-14

//날짜 입력
LocalDate date2 = LocalDate.of(1990, 8, 29);
System.out.println(date2); //1990-8-29

LocalTime (HH:mm:ss.SSS)

LocalTime currentTime = LocalTime.now(); //현재시각 (12:52:11.804)
LocalTime currentTimeInParis = LocalTime.now(ZoneId.of("Asia/Seoul")); //한국 서울 시각(02:12:23.706)



LocalDate.now().atTime(LocalTime.MIDNIGHT); // 하루가 시작되는 자정의 시간, '00:00'.
LocalDate.now().atTime(LocalTime.MAX); 지원되는 최대 LocalTime '23:59:59.999999999'

LocalDate.now().atTime(LocalTime.MIDNIGHT)atZone(ZoneId.of("Asia/Seoul"));

  • atTime() : 지정된 시간에 이 날짜로부터 형성된 LocalDateTime 을 반환한다.
    • LocalDate에 Time을 추가하려면 atTime()을 사용한다.
  • atZone() : 지정된 시간대의 이 날짜-시간으로 구성된 ZonedDateTime 을 반환한다.




출처
[Java] Java에서 날짜, 시간(Date, Time) 다루기
Java 8, 타임존이 포함된 ISO 8601 문자열을 LocalDateTime으로 변환하기
[Java]날짜와 시간 다루기(java.time)
JAVA - LocalDate, LocalTime, LocalDateTime

profile
💻 ⚾️ 🐻

0개의 댓글