#JAVA #DateTime
배경
- 특정 시기에서 다른 날짜까지의 계산은 매우 복잡함.
(윤년의 계산, 각 달마다 다른 일수) - 일광 절약 시간(Daylight Saving Time, DST)이 도입된 나라들의 시간 계산.
- 3월~10월에는 태양이 일찍 뜸 -> 썸머타임 적용하는 나라들 존재 (미국주식장 썸머타임)
- 세계는 타임존으로 나누어져 있으며 UTC(협정 세계시)로부터의 시간 차이로 정의
-> 타임존 간의 날짜와 시간 변환
여러 시간의 기준 존재
- GMT(그리니치 평균시)
처음 세계 시간을 만들 때 영국 런던에 있는 그리니치 천문대를 기준 - UTC(협정 세계시) - 주로 선호됨
원자 시계를 사용해 국제적으로 합의된 시간 체계, 지구의 자전 속도도 반영된 시간 조정

날짜와 시간 라이브러리
- LocalDate : 날짜만 표현 / 년, 월, 일 ex) 2024-05-12
- LocalTime : 시간만 표현 / 시, 분, 초 ex) 12:20:30.244
- LocalDateTime : 위 두개를 합친 표현
- 국내 서비스만 고려할 때 사용
- ZonedDateTime : 시간대를 고려한 날짜와 시간
- 타임존, UTC 기반
- 일광 절약 시간제 적용
실제 사용 날짜와 시간 정보를 표현하는 데 유리
- OffsetDateTime
- 타임존 X, UTC 기반
- 일광 절약 시간제 X
고정된 오프셋을 고려할 때 유리 ex) Log
- Instant
- UTC 기반
- 1970년 1월 1일 0시 0분 0초 기준의 초 데이터만 존재
- 장점
- 전 세계 어디서나 동일한 시점
- 고정된 기준점
시간의 개념
- 특정 시간의 시간(시각)
- 두 날짜 사이의 간격을 년, 월, 일로 나타낸다.
- 시간의 간격(기간)
- 두 시간 사이의 간격을 시, 분, 초 단위로 나타낸다

출처
인프런 '김영한의 실전 자바 - 중급 1편'
'Backend > JAVA' 카테고리의 다른 글
| [JAVA] 제네릭 (1) | 2025.01.25 |
|---|---|
| [JAVA] 예외 처리 (0) | 2025.01.24 |
| [JAVA] 클래스 (중첩, 내부) (1) | 2025.01.22 |
| [JAVA] 열거형 (Enum Type) (1) | 2025.01.22 |
| [JAVA] 불변 객체 (0) | 2025.01.19 |