Java/[inflearn] 자바 중급(1)
[김영한_자바중급][6. 날짜와 시간] ChronoUnit / ChronoField 이해하기 (p.24-32)
줌인.
2024. 4. 25. 17:29
ChronoField는 날짜나 시간의 특정 부분(예: 년, 월, 일)을 읽고 설정하는데 사용된다.
ChronoUnit은 두 날짜 또는 시간 사이의 간격을 측정하거나, 날짜/시간에 간격을 추가할 때 사용된다.
[예시] ChronoField와 ChronoUnit
LocalDateTime ldt = LocalDateTime.of(2024, 4, 25);
LocalDateTime ldt2 = ldt.plusDays(10); // 10일 후의 날짜를 계산
ChronoField | ChronoUnit | |
예시 | *년도: ldt.get(ChronoField.YEAR) → 2024 *월: ldt.get(ChronoField.MONTH_OF_YEAR) → 4 *일: ldt.get(ChronoField.DAY_OF_MONTH) → 25 |
*2024, 5, 5 → 10일 후의 날짜 계산 |
정의 | - 날짜나 시간의 특정 부분을 다룬다. - "년", "월", "일", "시간", "분"과 같이 날짜나 시간의 구체적인 세부 사항을 말한다. - 주로 특정 날짜의 특정 부분(예: 연도, 월, 일)을 가져오거나 설정할 때 사용된. |
- 시간의 길이를 나타낸다. - 주로 시간을 얼마나 많이 더하거나 빼야할지, 그리고 두 시간 사이에 얼마나 많은 시간이 있는지 계산할 때 사용된다. |
비유 | 스톱워치를 사용해서 얼마나 많은 시간이 흘렀는지 측정하는 것과 같다. ex) "이 스톱워치를 시작한 후 5초가 지났습니다." |
시계나 달력에서 특정 숫자를 읽는 것과 같다. ex) "지금은 5시 이고, 4월 24일 입니다." |
코드화 | `ChronoUnit.DAYS` : 생일부터 지금까지 몇일 지낫나 |
`ChronoField.DAY_OF_MONTH` : 월 확인 `ChronoField.YEAR` : 년 확인 |
결론 | 날짜나 시간의 구체적인 요소 | 시간의 길이나 기간 |
- ChronoUnit은 시간의 간격을 다양한 단위로 표현하고, 날짜와 시간을 조작하는 데 사용한다.
- Duration/Period는 각각 시간의 정밀한 부분과 날짜의 간격을 구체적으로 표현하며,
`ChronoUnit`을 사용하여 이들 간격을 정의하고 조작한다.
[ChronoUnit과 Period/Duration]
ChoroUnit | Period | Duration | |
특징 | 날짜와 시간의 간격을 다양한 단위로 나누는 역할 |
년, 월, 일을 사용하여 날짜의 간격을 표현 |
시간, 분, 초를 사용하여 시간의 간격을 표현 |
상관관계 | Duration/Period를 생성 및 날짜/시간을 조작할 때 사용할 수 있는 다양한 단위를 제공한다. |
ChronoUnit을 사용하여 생성/조작될 수 있는 구체적인 시간 간격을 표현한 클래스 |
|
상관관계 예시 | ChronoUnit.DAYS → Duration 생성 ChronoUnit.YEARS → Period 조작할 수 있다. |
||
코드화 | `SECONDS`, `MINUTES`, `HOURS`, `DAYS`, `WEEKS`, `MONTHS`, `YEARS` |
728x90