2022. 4. 11. 14:18ใJAVA/study
1๏ธโฃ ์ด์ Date์ Time
java 8 ์ ์๋ก์ด ๋ ์ง์ ์๊ฐ API๊ฐ ์๊ธด ์ด์
-> ๊ทธ์ ๊น์ง ์ฌ์ฉํ๋ java.util.Date ํด๋์ค๋ mutuable(๋ณ๊ฒฝ์ด ์ฌ์ด) ๋๋ฌธ์ Thread safeํ์ง ์์๋ค.
-> ํด๋์ค ์ด๋ฆ์ด ๋ช ํํ์ง ์๋ค. (Date์ธ๋ฐ ์๊ฐ์ ๋ค๋ฃจ๊ธฐ๋ ํ๊ณ ์ด๋ฆ์ด ์ข ํท๊ฐ๋ฆฐ๋ค.)
-> ๋ฒ๊ทธ ๋ฐ์ํ ์ฌ์ง๊ฐ ๋ง๋ค. (ํ์ ์์ ์ฑ์ด ์๊ณ , ์์ด 0๋ถํฐ ์์..)
-> ๋ ์ง ์๊ฐ ์ฒ๋ฆฌ๊ฐ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ๋ณดํต joda time์ ์ฌ์ฉํ๊ณค ํ๋ค.
2๏ธโฃ ์ฃผ์ API
- ๊ธฐ๊ณ์ฉ ์๊ฐ machine Time ๊ณผ ์ธ๋ฅ์ฉ ์๊ฐ human time์ผ๋ก ๋๋ ์ ์๋ค.
- ๊ธฐ๊ณ์ฉ ์๊ฐ epoke (1970๋ 1์ 1์ผ 0์ 0๋ถ 0์ด)๋ถํฐ ํ์ฌ๊น์ง์ ํ์ ์คํฌํ๋ฅผ ํํํ ์ ์๋ค.
- ์ธ๋ฅ์ฉ ์๊ฐ์ ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ ์ฐ, ์, ์ผ, ์, ๋ถ, ์ด ๋ฑ์ ํํํ๋ค.
- ํ์์คํฌํ๋ instant๋ฅผ ์ฌ์ฉํ๋ค.
- ํน์ ๋ ์ง LocalDate, ์๊ฐ LocalTime, ์ผ์ LocalDateTime์ ์ฌ์ฉํ ์ ์๋ค.
- ๊ธฐ๊ฐ์ ํํํ ๋๋ Duration ์๊ฐ ๊ธฐ๋ฐ๊ณผ Period ๋ ์ง ๊ธฐ๋ฐ์ ์ฌ์ฉํ ์ ์๋ค.
- DateTimeFormmater๋ฅผ ์ฌ์ฉํด์ ์ผ์๋ฅผ ํน์ ํ ๋ฌธ์์ด๋ก ํฌ๋งทํ ํ ์ ์๋ค.
3๏ธโฃ Date ์ Time API
: ์ง๊ธ ์ด ์๊ฐ์ ๊ธฐ๊ณ ์๊ฐ์ผ๋ก ํํํ๋ ๋ฐฉ๋ฒ
Instant.now() ํ์ฌ UTC(GMT)๋ฅผ ๋ฆฌํดํ๋ค.
UTC(Universal Time Coordinated) : ๋จ์ํ๊ฒ ๋งํ๋ฉด ์๊ตญ์ ๊ธฐ์ค์ผ๋ก ๊ฐ ์ง์ญ์ ์์ฐจ๋ฅผ ๊ท์ ํ ๊ฒ
GMT(Greenwich Mean Time) : ์๊ตญ ๋ฐ๋์ ๊ธฐ์ , ๋ด์ง๋๋ ์ฐ๋งํด์ ์ข ์ ์ผ๋ก ํ๋ ํ์ ์ธ๊ณ์
-> ๋์ด ๊ฐ์
-> ํ๊ตญ์ ์๊ตญ๋ณด๋ค 9์๊ฐ์ ๋ ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ UTC+ 9 ๋ผ๊ณ ํ์
์ธ๋ฅ์ฉ ์ผ์๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ
LocalDateTime.now() : ํ์ฌ ์์คํ Zone์ ํด๋นํ๋ (๋ก์ปฌ) ์ผ์๋ฅผ ๋ฆฌํดํ๋ค.
LocalDateTime.of(int month, int, int, int, int) : ๋ก์ปฌ์ ํน์ ์ผ์๋ฅผ ๋ฆฌํดํ๋ค.
LocalDateTime.of(int Month, int, int, int, int, ZoneId) : ํน์ Zone์ ํน์ ์ผ์๋ฅผ ๋ฆฌํดํ๋ค.
๊ธฐ๊ฐ์ ํํํ๋ ๋ฐฉ๋ฒ
period/ Duration. between()
ํ์ฑ ๋๋ ํฌ๋งคํ
: ๋ฏธ๋ฆฌ ์ ์ํด๋ ํฌ๋งท ์ฐธ๊ณ
LocalDateTime.parse(String, DateTimeFormatter);
๋ ๊ฑฐ์(legacy ๋ก์) API ์ง์
: GregorialCalendar์ Date ํ์ ์ ์ธ์คํด์ค๋ฅผ Instant๋ ZonedDateTime์ผ๋ก ๋ณํ ๊ฐ๋ฅ
java.util.TimeZone - > java.time.ZoneId๋ก ์ํธ ๋ณํ ๊ฐ๋ฅ
'JAVA > study' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ๋ ์๋ฐ, Java 8 ์ ๋ ธํ ์ด์ ๋ณํ, ๋ฐฐ์ด Parallel ์ ๋ ฌ, Metaspace (0) | 2022.04.11 |
---|---|
[JAVA] ๋ ์๋ฐ, Java 8 CompletableFuture (0) | 2022.04.11 |
[JAVA] ๋ ์๋ฐ, Java 8 Optional (0) | 2022.04.11 |
[JAVA] ๋ ์๋ฐ, Java 8 Stream (0) | 2022.04.06 |
[JAVA] ๋ ์๋ฐ, Java 8 ์ธํฐํ์ด์ค ๋ณํ (0) | 2022.04.06 |