์ค๋์ ์ฃผ์์ฌํญ (6/8, ๋ชฉ์์ผ)
- ํธํ ์์ฝ ํ๋ก์ ํธ ์งํ ์ค
- ๊ฐ์ค ์์ฝยท์ทจ์ ๊ธฐ๋ฅ
- ์์ต
- ๋ชจ๋ ์๋ฐ
์ฌ๊ธฐ๊น์ง๋ ๊ตฌํ๊ณผ์ ๊ฐ ์๋๋ผ์ ํ ์ผ์ ์์ ๊ฒ ๊ฐ์ง๋ง ์ด์ฉ๋ค ๋ง์ด ๋์จ ๊น์ ํผ์ ์๊ฐ์ ํด๋ดค๋ค. (์๋ง ํ๋ค๊ณ ํด๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ๊ฑฐ๋ผ๊ณ ์๊ฐํ๋ค)
๋์ผ๋ก ๋ณด์ด๋ ํ์๋ ๊ฐ๋จํ๊ฒ 1. ์
์ค์ผ์ ์
๋ ฅ ๋ฐ๊ณ
, 2. ํด์ค์ผ์ ์
๋ ฅ ๋ฐ์ ๋ค์
, 3. ์
์ค์ผ๋ถํฐ (ํด์ค-1) ์ผ๊น์ง๋ ์์ฝ๋ถ๊ฐ ํ์๋ฅผ ํด๋๋ค
. ์ฌ๊ธฐ๊น์ง ์๊ฐํ์ ๋ ๊ฐ๋จํด๋ณด์์ผ๋... ๊ฐ์ ์
๋ ฅ ๋ฐ์ ํ์ ์ด๋ฃจ์ด์ง๋ ์ค์ ์ฒ๋ฆฌ๊ฐ ๋ณต์กํด์ ๋จธ๋ฆฌ ์์ผ๋ก ๋ ์ฌ๋ฆฌ๋ ๊ฒ์กฐ์ฐจ ํ๋ค์๋ค (ใ
ใ
) ์๋ง ๋ด๊ฐ ๋ด๋นํ Reserve
์ ๊ด์ ์ผ๋ก๋ ํ ์ ์๋ ํ๋์ด ์ ํ์ ์ด๋ผ ๋ํ๊ตฌ๊ฐ ๋ณด์ด์ง ์์์ ๊ฑฐ๋ผ๋ ์๊ฐ๋ ๋ ๋ค.
์๋ฌดํผ ์๊ฐ๋ง ํ๋ค. ์๊ฐ๋ง.
LocalDateTime
โ ZonedDateTime
๋ณ๊ฒฝby. ์ปจํธ๋กค๋ฌ ๋ด๋น ํ์ ๋ถ
ํ์ ์๊ตฌ์ฌํญ ์ค์ ์ด๋ฐ ๋ด์ฉ์ด ์๋ค.
- ์์ฝ ๋ ์ง
๋ ์ง๋ ISO 8601 ํ์์ผ๋ก
์กฐํฉ๋ UTC ๋ ์ง ๋ฐ ์๊ฐ
์) 2016-10-27T17:13:40+00:00
๊ทธ๋ฌ๋๊น ์๊ฐ์ ์ถ๋ ฅํ ๋ UTC = Universal Time Coordinated = ํ์ ์ธ๊ณ์
๋ฅผ ์ฌ์ฉํ๋ผ๋ ์ด์ผ๊ธฐ์ธ๋ฐ, ์ด๋ ZonedDateTime
์ ์ฌ์ฉํจ์ผ๋ก์จ ํด๊ฒฐํ ์ ์๋ค. ZonedDateTime
๋ LocalDateTime
์ ํ์์กด
์ ๋ํ ์๊ฐ ๊ฒฐ๊ณผ๊ฐ์ ์ป์ ์ ์๋ ๊ฐ์ฒด๋ค.
ZonedDateTime
ํ์ฑ/ํฌ๋งคํ
DateTimeFormatter
๋ฅผ ์ฌ์ฉํ๋ฉด ์๊ฐ์ ์ํ๋ ๋ฌธ์์ด ํํ๋ก ์ถ๋ ฅํ ์ ์๋ค(= ํ์ฑํ ์ ์๋ค).
.ofPattern("yyyy-MM-dd HH:mm:ss z")
String parseDateTime = getZonedDateTime(myUUID).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z"));
2023-06-08 20:49:55 +09:00
.ofPattern()
์ ์ฌ์ฉํ๋ฉด ์ง์ ํ ํํ๋ก ์ถ๋ ฅํด์ค ์ ์๋ค. โป ์๊ฐ์ 24์๊ฐ ๋จ์๋ก ์ถ๋ ฅํ๋ ค๋ฉด ๋๋ฌธ์ HH
๋ก ํ๊ธฐํด์ผํ๊ณ (์๋ฌธ์ hh
๋ 12์๊ฐ ๋จ์ ํ๊ธฐ), ์ง์ ๋ ๋ฌธ์์ด ์ธ ๋ค๋ฅธ ๋ฌธ์๊ฐ ๋ค์ด๊ฐ๋ฉด ์ค๋ฅ๊ฐ ์ผ์ด๋๊ธฐ๋ ํ๋ค.
withNano(0).toString()
String parseDateTime = getZonedDateTime(myUUID).withNano(0).toString();
2023-06-08T20:49:55+09:00
withNano(0)
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ฆฌ์ธ์ปจ๋๊ฐ ์ ์ธ๋ ์๊ฐ์ด ์์ฑ๋๋ค.