1. ๋ ์ง ์๊ฐ API ์๊ฐ
Java ์ ์์๋ Date ๋ฐ Calendar ํด๋์ค์ ์ํฉ์ ์ข์ํ์ง ์์์ต๋๋ค. ๊ทธ๋ค์ ๋น์์๋ ์ข์์ง๋ง ์๋๋ ๋ณํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๋จํ๊ณ ๊ฐ๋ ฅํ๋ฉฐ ์ ๋ขฐํ ์ ์๋ ๊ฒ์ด ํ์ํ๊ฒ ๋์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Java 8์ด ์ถ์๋๋ฉด์( Calendar
์ถ์ 15๋
ํ) Java Date Time API ๊ฐ ๋์
๋์์ต๋๋ค. ์๊ฐ์ ๋ค๋ฃจ๋ ๋ชจ๋ ๊ฐ๋ฅํ ์์
์ ํด๊ฒฐํ ์ ์์ด์ผ ํ๋ ํด๋์ค ์ธํธ์
๋๋ค.
ํด๋์ค๊ฐ ๋๋ฌด ๋ง์์ ์ฌ๋ฌ ํจํค์ง๋ก ๋๋ฉ๋๋ค.
ํจํค์ง java.time
๋ Java Date Time API์ ๊ธฐ๋ณธ ํจํค์ง์ด๋ฉฐ LocalDate
, LocalTime
, LocalDateTime
, Instant
, Period
๋ฐ ์ ๊ฐ์ ํด๋์ค๋ฅผ ํฌํจํฉ๋๋ค Duration
. ์ด๋ฌํ ํด๋์ค์ ๋ชจ๋ ๊ฐ์ฒด๋ ์
๋๋ค immutable
. ์ฆ, ์์ฑ ํ์๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
ํจํค์ง java.time.format
์๋ ์๊ฐ ํ์ํ, ์ฆ ์๊ฐ(๋ฐ ๋ ์ง)์ ๋ฌธ์์ด๋ก ๋๋ ๊ทธ ๋ฐ๋๋ก ๋ณํํ๊ธฐ ์ํ ํด๋์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. DateTimeFormatter
์๋ฅผ ๋ค์ด ํด๋์ค ๋ฅผ ๋์ฒดํ๋ ๋ค๋ชฉ์ ํด๋์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค SimpleDateFormat
.
ํจํค์ง java.time.zone
์๋ ์๊ฐ๋ ์์
์ ์ํ ํด๋์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. TimeZone
๋ฐ ์ ๊ฐ์ ํด๋์ค๋ฅผ ํฌํจํฉ๋๋ค ZonedDateTime
. ์ธ๊ณ ์ฌ๋ฌ ๊ณณ์ ์์นํ ํด๋ผ์ด์ธํธ๋ฅผ ์ํ ์๋ฒ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ํด๋์ค๊ฐ ์ค์ ๋ก ํ์ํฉ๋๋ค.
2. LocalDate
ํด๋์ค
์ฐ๋ฆฌ๊ฐ ์ดํด๋ณผ Date Time API์ ์ฒซ ๋ฒ์งธ์ด์ ๊ฐ์ฅ ์ ์ฉํ ํด๋์ค๋ ํด๋์ค์
๋๋ค LocalDate
. ์ด๋ฆ์์ ์ง์ํ ์ ์๋ฏ์ด ์ด ํด๋์ค๋ ๋ ์ง์ ํจ๊ป ์๋ํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ด ํด๋์ค์ ๊ฐ์ฒด๋ ์์ฑ๋ ํ์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ฆ, ํด๋์ค LocalDate
๋ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋์ด ์์ฑ์ ํด๋์ค์ ๋จ์์ฑ๊ณผ ์์ ์ฑ์ ์ถ๊ฐํฉ๋๋ค. ํนํ ์ฌ๋ฌ ์ค๋ ๋(์คํ ์ค๋ ๋)๊ฐ ์ด๋ฌํ ๊ฐ์ฒด์ ๋์์ ์ํธ ์์ฉํ๋ ๊ฒฝ์ฐ.
์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๋ ค๋ฉด LocalDate
์ ์ ๋ฉ์๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ฃผ์ ๋ชฉ๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํ์ฌ ๋ ์ง ์ป๊ธฐ
ํ์ฌ ๋ ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ์ ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค now()
. ๋ณด๊ธฐ๋ณด๋ค ํจ์ฌ ์ฝ์ต๋๋ค.
LocalDate today = LocalDate.now();
์ฌ๊ธฐ์ today
๋ LocalDate
๋ณ์์ด๊ณ ํด๋์ค ์ LocalDate.now()
์ ์ ๋ฉ์๋์ ๋ํ ํธ์ถ์
๋๋ค .now()
LocalDate
์:
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
ํน์ ์๊ฐ๋์ ๋ ์ง ๊ฐ์ ธ์ค๊ธฐ
์ด ํด๋์ค ์๋ ํน์ ์๊ฐ๋์ ํ์ฌ ๋ ์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ LocalDate
๋ค์ํ ๋ฉ์๋๋ ์์ต๋๋ค .now(ZoneId)
์ด๋ฅผ ์ํด์๋ ํด๋์ค ZoneId
(java.time.ZoneId)๋ผ๋ ๋ ๋ค๋ฅธ ํด๋์ค๊ฐ ํ์ํฉ๋๋ค. ์๊ฐ๋ ์ด๋ฆ์ด ์ง์ ๋ ๊ฐ์ฒด๋ฅผ of()
๋ฐํํ๋ ๋ฉ์๋๊ฐ ์์ต๋๋ค .ZoneId
์ํ์ด์ ํ์ฌ ๋ ์ง๋ฅผ ํ์ธํ๋ ค๋ฉด ๋ค์ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
์ธํฐ๋ท์์ ๋ชจ๋ ์๊ฐ๋์ ์ด๋ฆ ๋ชฉ๋ก์ ์ฐพ์ ์ ์์ต๋๋ค.
3. ํน์ ๋ ์ง ๋ฐ๊ธฐ
ํน์ ๋ ์ง๋ฅผ ๋ํ๋ด๋ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด LocalDate
์ ์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค of()
. ์ฌ๊ธฐ์ ์๋ ๋ชจ๋ ๊ฒ๋ ๋งค์ฐ ๊ฐ๋จํ๊ณ ๋ช
ํํฉ๋๋ค.
LocalDate date = LocalDate.of(2019, Month.FEBRUARY, 22);
์ฌ๊ธฐ์ date
๋ LocalDate
๋ณ์์ด๊ณ ํด๋์ค ์ ์ ์ ๋ฉ์๋์ ๋ํ ํธ์ถ์
๋๋ค .LocalDate.of()
of()
LocalDate
์ฌ๊ธฐ์์ 2์์ ์๋ก ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํด๋์ค(java.time.Month) FEBRUARY
์ ์์๋ฅผ ๋ณผ ์ ์์ต๋๋ค .Month
์ซ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ ๋ฐฉ์์ผ๋ก ์์ ์ง์ ํ ์๋ ์์ต๋๋ค.
LocalDate date = LocalDate.of(2019, 2, 22);
๋? 2์ ๋์ ? ๊ทธ๊ฒ์ ๋ฌ์ด ๋ค์ ํ ๋ฒ๋ถํฐ ๋ฒํธ๊ฐ ๋งค๊ฒจ์ง๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๊น?
์, Java๊ฐ ์์ฑ๋ ์ง ๊ฑฐ์ 20๋ ์ด ์ง๋ ์ง๊ธ ๋ง์นจ๋ด 0๋ถํฐ ์์ํ์ฌ ๊ฐ์ ์๋ฅผ ์ธ๋ ์ผ์ด ์ค๋จ๋์์ต๋๋ค.
์:
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
์ค๋์ ์ธ๋ฑ์ค๋ก ๋ ์ง ๊ตฌํ๊ธฐ
๋ ์ง๋ฅผ ๋ง๋๋ ๋ ๋ค๋ฅธ ํฅ๋ฏธ๋ก์ด ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด ofYearDay
๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ฐ๋์ ์ซ์์ ํด๋น ์ฐ๋์ ๋ ์ง ์ธ๋ฑ์ค๋ง์ ๊ธฐ์ค์ผ๋ก ๋ ์ง๋ฅผ ์ป์ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
LocalDate date = LocalDate.ofYearDay(year, day);
year
์ฐ๋์ ์ซ์๋ ์ด๋์ ์๊ณ day
์ฐ๋์ ๋ ์ง ์ธ๋ฑ์ค์
๋๋ค.
์:
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
2019๋ 100์ผ์ 4์ 10์ผ์ ๋๋ค.
์ ๋์ค ๋ ์ง ์ป๊ธฐ
Date
1970๋
1์ 1์ผ ์ดํ ๊ฐ์ฒด๊ฐ ํญ์ ์๊ฐ์ ๋ฐ๋ฆฌ์ด๋ก ์ ์ฅํ ๊ฒ์ ๊ธฐ์ตํ์ญ๋๊น ? ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋ ์ ๊ทธ๋ฆฌ์ํ์ง ์๋๋ก ํด๋์ค์๋ 1970๋
1์ 1์ผ๋ถํฐ ๊ณ์ฐ๋ ๋ ์ง๋ฅผ ๋ฐํํ๋ ๋ฉ์๋ LocalDate
๊ฐ ์์ต๋๋ค. ofEpochDay()
์ผ๋ฐ์ ์ธ ๋ชจ์ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
LocalDate date = LocalDate.ofEpochDay(day);
day
1970๋
1์ 1์ผ ์ดํ ๊ฒฝ๊ณผ๋ ์ผ์๋ ์ด๋์ ์์ต๋๊น?
์:
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
4. ๋ ์ง ์์ ๊ฐ์ ธ์ค๊ธฐ
๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅ LocalDate
ํ์ง๋ง ์ ์ฅ๋ ๋ ์ง์ ๊ฐ๋ณ ์์๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. LocalDate
๊ฐ์ฒด์๋ ์ด๋ฅผ ์ํ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ฐฉ๋ฒ | ์ค๋ช |
---|---|
|
ํน์ ๋ ์ง์ ์ฐ๋๋ฅผ ๋ฐํํฉ๋๋ค. |
|
๋ ์ง์ ์ ๋ฐํ: ์ฌ๋ฌ ์์ ์ค ํ๋JANUARY, FEBRUARY, ...; |
|
๋ ์ง์ ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. 1์ == 1. |
|
ํด๋น ์์ ์ผ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. |
|
์ฐ์ด๋ถํฐ ์ผ์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํฉ๋๋ค. |
|
์์ผ ๋ฐํ: ์ฌ๋ฌ ์์ ์ค ํ๋MONDAY, TUESDAY, ...; |
|
์๋๋ฅผ ๋ฐํํฉ๋๋ค: BCE (ํ์ฌ ์๋ ์ด์ ) ๋ฐ CE (ํ์ฌ ์๋) |
์:
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
LocalDate
5. ๊ฐ์ฒด ์ ๋ ์ง ๋ณ๊ฒฝ
ํด๋์ค LocalDate
์๋ ๋ ์ง ์์
์ ์ํํ ์ ์๋ ์ฌ๋ฌ ๋ฉ์๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ฌํ ๋ฉ์๋์ ๊ตฌํ์ ํด๋์ค์ ๋ฉ์๋์ ์ ์ฌํฉ๋๋ค String
. ๊ธฐ์กด ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ LocalDate
๋์ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ์๋ ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
ํด๋์ค ์ ๋ฉ์๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค LocalDate
.
๋ฐฉ๋ฒ | ์ค๋ช |
---|---|
|
๋ ์ง์ ์ง์ ๋ ์ผ์๋ฅผ ๋ํฉ๋๋ค. |
|
๋ ์ง์ ์ฃผ๋ฅผ ์ถ๊ฐํฉ๋๋ค. |
|
๋ ์ง์ ์์ ์ถ๊ฐํฉ๋๋ค. |
|
๋ ์ง์ ์ฐ๋ ์ถ๊ฐ |
|
๋ ์ง์์ ์ผ์ ๋บ๋๋ค. |
|
๋ ์ง์์ ์ฃผ๋ฅผ ๋บ๋๋ค. |
|
๋ ์ง์์ ์์ ๋บ๋๋ค. |
|
๋ ์ง์์ ์ฐ๋๋ฅผ ๋บ๋๋ค. |
์:
์ํธ | ์ฝ์ ์ถ๋ ฅ |
---|---|
|
|
์ฐ๋ฆฌ๊ฐ ํธ์ถํ๋ ๋ฉ์๋๋ birthday object
๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋์ ํด๋น ๋ฉ์๋๋ ์ํ๋ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
GO TO FULL VERSION