๐Ÿ“š TIL 17์ผ์ฐจ

temprmnยท2023๋…„ 6์›” 8์ผ
0
post-thumbnail

์˜ค๋Š˜์˜ ์ฃผ์š”์‚ฌํ•ญ (6/8, ๋ชฉ์š”์ผ)

  1. ํ˜ธํ…” ์˜ˆ์•ฝ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘
    • ๊ฐ์‹ค ์˜ˆ์•ฝยท์ทจ์†Œ ๊ธฐ๋Šฅ
  2. ์ž์Šต
    • ๋ชจ๋˜ ์ž๋ฐ”

๐Ÿ“… ๋‚ ์งœ ์ง€์ • ์˜ˆ์•ฝ์— ๋Œ€ํ•œ ๊ณ ์ฐฐ...

์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๊ตฌํ˜„๊ณผ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ์„œ ํ•  ์ผ์€ ์—†์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ ์–ด์ฉŒ๋‹ค ๋ง์ด ๋‚˜์˜จ ๊น€์— ํ˜ผ์ž ์ƒ๊ฐ์„ ํ•ด๋ดค๋‹ค. (์•„๋งˆ ํ•œ๋‹ค๊ณ  ํ•ด๋„ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค)

๋ˆˆ์œผ๋กœ ๋ณด์ด๋Š” ํ–‰์œ„๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ 1. ์ž…์‹ค์ผ์„ ์ž…๋ ฅ ๋ฐ›๊ณ , 2. ํ‡ด์‹ค์ผ์„ ์ž…๋ ฅ ๋ฐ›์€ ๋‹ค์Œ, 3. ์ž…์‹ค์ผ๋ถ€ํ„ฐ (ํ‡ด์‹ค-1) ์ผ๊นŒ์ง€๋Š” ์˜ˆ์•ฝ๋ถˆ๊ฐ€ ํ‘œ์‹œ๋ฅผ ํ•ด๋‘”๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€ ์ƒ๊ฐํ–ˆ์„ ๋• ๊ฐ„๋‹จํ•ด๋ณด์˜€์œผ๋‚˜... ๊ฐ’์„ ์ž…๋ ฅ ๋ฐ›์€ ํ›„์— ์ด๋ฃจ์–ด์ง€๋Š” ์‹ค์ œ ์ฒ˜๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์„œ ๋จธ๋ฆฌ ์†์œผ๋กœ ๋– ์˜ฌ๋ฆฌ๋Š” ๊ฒƒ์กฐ์ฐจ ํž˜๋“ค์—ˆ๋‹ค (ใ… ใ… ) ์•„๋งˆ ๋‚ด๊ฐ€ ๋‹ด๋‹นํ•œ Reserve์˜ ๊ด€์ ์œผ๋กœ๋Š” ํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์ด ์ œํ•œ์ ์ด๋ผ ๋ŒํŒŒ๊ตฌ๊ฐ€ ๋ณด์ด์ง€ ์•Š์•˜์„ ๊ฑฐ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ ๋‹ค.

์•„๋ฌดํŠผ ์ƒ๊ฐ๋งŒ ํ–ˆ๋‹ค. ์ƒ๊ฐ๋งŒ.

โฐ LocalDateTime โ†’ ZonedDateTime ๋ณ€๊ฒฝ

by. ์ปจํŠธ๋กค๋Ÿฌ ๋‹ด๋‹น ํŒ€์› ๋ถ„

ํ•„์ˆ˜ ์š”๊ตฌ์‚ฌํ•ญ ์ค‘์— ์ด๋Ÿฐ ๋‚ด์šฉ์ด ์žˆ๋‹ค.

  1. ์˜ˆ์•ฝ ๋‚ ์งœ
    ๋‚ ์งœ๋Š” ISO 8601 ํ˜•์‹์œผ๋กœ
    ์กฐํ•ฉ๋œ UTC ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„
    ์˜ˆ) 2016-10-27T17:13:40+00:00

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•  ๋•Œ UTC = Universal Time Coordinated = ํ˜‘์ •์„ธ๊ณ„์‹œ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๋Š” ์ด์•ผ๊ธฐ์ธ๋ฐ, ์ด๋Š” ZonedDateTime์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ZonedDateTime๋Š” LocalDateTime์— ํƒ€์ž„์กด์„ ๋”ํ•œ ์‹œ๊ฐ„ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด๋‹ค.

ZonedDateTime ํŒŒ์‹ฑ/ํฌ๋งคํŒ…

DateTimeFormatter๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„์„ ์›ํ•˜๋Š” ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค(= ํŒŒ์‹ฑํ•  ์ˆ˜ ์žˆ๋‹ค).

case 1) .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์‹œ๊ฐ„ ๋‹จ์œ„ ํ‘œ๊ธฐ), ์ง€์ •๋œ ๋ฌธ์ž์—ด ์™ธ ๋‹ค๋ฅธ ๋ฌธ์ž๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์˜ค๋ฅ˜๊ฐ€ ์ผ์–ด๋‚˜๊ธฐ๋„ ํ•œ๋‹ค.

ex 2) withNano(0).toString()
String parseDateTime = getZonedDateTime(myUUID).withNano(0).toString();
2023-06-08T20:49:55+09:00

withNano(0)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ€๋ฆฌ์„ธ์ปจ๋“œ๊ฐ€ ์ œ์™ธ๋œ ์‹œ๊ฐ„์ด ์ƒ์„ฑ๋œ๋‹ค.

profile
`ISFJ` T 49% F 51% /

0๊ฐœ์˜ ๋Œ“๊ธ€