Date/Time
์๋ก ์ถ๊ฐ ๋ ์ด์
1. java.util.Date ํด๋์ค๋ mutableํ์ฌ thread safe ํ์ง ์๋ค.
Date๊ฐ์ฒด๋ฅผ ๋ณด๋ฉด setTime()๊ณผ ๊ฐ์ ๋ฉ์๋๋ก ๋ด๋ถ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ mutableํ์ฌ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์ ์ ํฉํ์ง ์๋ค.
ํด๋์ค ์ด๋ฆ์ด ๋ช ํํ์ง ์๋ค. (Date์ธ๋ฐ ์๊ฐ๊น์ง ๋ค๋ฃฌ๋ค.) Date ๋ผ๋ ํด๋์ค์ธ๋ฐ getTime()๊ณผ ๊ฐ์ด ์๊ฐ๊น์ง ๋ค๋ฃฌ๋ค.
ํ์ ์์ ์ฑ์ด ์๊ณ ์์ด 0๋ถํฐ ์์ํ๊ฑฐ๋ ๋ฑ๋ฑ ๋ฒ๊ทธ ๋ฐ์์ ์ฌ์ง๊ฐ ๋ง๋ค.
ํ์ ์ int๋ก ๋ฐ๊ธฐ ๋๋ฌธ์ ์ซ์๋ฉด ๋ชจ๋ ๋ค ๋ฐ์ ์ ์๊ณ ๊ทธ์ ๋ฐ๋ผ ์ด์ํ ๊ฐ์ด ์ฌ ์๊ฐ ์๋ค.
ํน์ง
๊ธฐ์กด API
java.util.Date
java.util.Calendar
java.text.SimpleDateFormat
์ถ๊ฐ๋ API
java.time.Instant : ๊ธฐ๊ณ์๊ฐ
java.time.LocalDate : ๋ ์ง(์๊ฐx), ํ์์กดx
java.time.LocalTime : ์๊ฐ(๋ ์งx), ํ์์กดx
java.time.LocalDateTime : ๋ ์ง/์๊ฐ, ํ์์กดx
java.time.ZonedDateTime : ๋ ์ง/์๊ฐ, ํ์์กดo
java.time.DateTimeFormatter
java.time.Duration
java.time.Period
java.time.TemporalAdjuster
์ฌ์ฉ ์
1. Instant
2. LocalDate/LocalTime/LocalDateTime/ZonedDateTime
3. DateTimeFormatter
DateTimeFormatter์ ofPattern()์ ์ด์ฉํด ํน์ ํจํด์ ์ง์ ํ ์ ์๊ณ ๋ฏธ๋ฆฌ ์ ์๋ ํฌ๋งทํฐ๋ค์ด ์กด์ฌํ๋๋ฐ ์ด ํ์์ ์ด์ฉํ๊ณ ์ํ๋ฉด ๊ตณ์ด ์๋ก ์ ์ํด์ค ํ์๊ฐ ์๋ค. ์ ์๋ ํฌ๋งทํฐ๋ค์ ์ฌ๊ธฐ๋ฅผ ์ฐธ๊ณ
๋ Date/Timeํ์ ์ parse()๋ฉ์๋๋ฅผ ํตํด์ ํน์ ๋ฌธ์์ด์ Date/Time ํ์ ์ผ๋ก ํ์ฑํ ์ ์๋ค.
4. Duration / Period
Period๋ ์ฌ๋์ด ์ฌ์ฉํ๋ ๋ ์ง/์๊ฐ์ ๊ธฐ๊ฐ์ ์ธก์ , Duration์ ์ด๋จ์(๋๋ ธ,๋ฐ๋ฆฌ)๋ก ๋ฐํ์ ํ๊ธฐ ๋๋ฌธ์ ์ฃผ๋ก ๊ธฐ๊ณ์ฉ ์๊ฐ๊ฐ์ ๊ธฐ๊ฐ์ ์ธก์ ํ๋๋ฐ ์ฌ์ฉํ ์ ์๋ค.
์ถ๊ฐ
Immutable ํ Date/Time
Date/Time์ ๋ชจ๋ ๊ฐ์ฒด๋ mutableํ ์์ฑ์ ๋จ์ ์ ํด๊ฒฐํ๊ณ ์ Immutableํ ์์ฑ์ ๊ฐ๊ณ ์ค๊ณ๊ฐ ๋์๋๋ฐ ์ด ๋๋ฌธ์ ๋ฉ์๋๋ฅผ ์ด์ฉํด ๋ ์ง,์๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ์์ ์ ์๋ ํจ์์ฒ๋ผ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ๋ฐํํ๊ณ ์๋ค.
Reference
https://codeblog.jonskeet.uk/2017/04/23/all-about-java-util-date/
Last updated