Skip to main content

datetime: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

2024๋…„ 5์›” 6์ผAbout 3 minPythoncrashcoursepythonpy

datetime: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ จ

๋ชฉ์ฐจ

ํ•จ๊ป˜ํ•ด์š” ํŒŒ์ด์ฌ ์ƒํƒœ๊ณ„

datetime: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | WikiDocs

ํ•จ๊ป˜ํ•ด์š” ํŒŒ์ด์ฌ ์ƒํƒœ๊ณ„

Python์˜ datetime[1]๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์˜ ์ƒ์„ฑ, ์กฐ์ž‘, ์—ฐ์‚ฐ ๋ฐ ํฌ๋งทํŒ…๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ํด๋ž˜์Šค์™€ ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. datetime์€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‹œ๊ฐ„์— ๊ธฐ๋ฐ˜ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ๋„๊ตฌ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด, ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.


์ฃผ์š” ํŠน์ง•
  1. ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ฒ˜๋ฆฌ: ๋‚ ์งœ(date), ์‹œ๊ฐ„(time), ๋‚ ์งœ์™€ ์‹œ๊ฐ„์˜ ์กฐํ•ฉ(datetime), ์‹œ๊ฐ„ ๊ฐ„๊ฒฉ(timedelta) ๋“ฑ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  2. ์‹œ๊ฐ„๋Œ€ ์ธ์‹: datetime์€ ์‹œ๊ฐ„๋Œ€๋ฅผ ์ธ์‹ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์‹œ๊ฐ„๋Œ€์˜ ์‹œ๊ฐ„์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํŽธ๋ฆฌํ•œ ๋‚ ์งœ/์‹œ๊ฐ„ ์—ฐ์‚ฐ: ๋‘ ๋‚ ์งœ/์‹œ๊ฐ„ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜, ํŠน์ • ๊ธฐ๊ฐ„์„ ๋”ํ•˜๊ณ  ๋นผ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ๋‹ค์–‘ํ•œ ํฌ๋งทํŒ…๊ณผ ํŒŒ์‹ฑ: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ๋ฌธ์ž์—ด์—์„œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ํŒŒ์‹ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ •์˜ ํฌ๋งท์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ํ‘œ์ค€ ํฌ๋งท์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Arrow: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

Arrow: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | WikiDocs

ํ•จ๊ป˜ํ•ด์š” ํŒŒ์ด์ฌ ์ƒํƒœ๊ณ„
arrow-py/arrow
๐Ÿน Better dates & times for Python

arrow[2]๋Š” Python์—์„œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, datetime ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์„ ๋ณด์™„ํ•˜๊ณ  ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. arrow๋Š” ์‹œ๊ฐ„๋Œ€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ณต์žก์„ฑ์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋‚ ์งœ ํ˜•์‹์„ ์‰ฝ๊ฒŒ ํŒŒ์‹ฑํ•˜๊ณ  ํฌ๋งทํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ, ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ž‘์—…์„ ๋ณด๋‹ค ์ง๊ด€์ ์ด๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•
  • ์‚ฌ์šฉ์ž ์นœํ™”์ : arrow๋Š” datetime ๋ชจ๋“ˆ๋ณด๋‹ค ๋” ์ง๊ด€์ ์ด๊ณ  ๊ฐ„๊ฒฐํ•œ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์‰ฝ๊ฒŒ ์กฐ์ž‘ํ•˜๊ณ  ํฌ๋งทํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ๊ฐ„๋Œ€ ์ง€์›: arrow๋Š” ๋‚ด์žฅ๋œ ์‹œ๊ฐ„๋Œ€ ์ง€์›์„ ํ†ตํ•ด ์‹œ๊ฐ„๋Œ€๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์‹œ๊ฐ„๋Œ€์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ตญ์ œํ™”: arrow๋Š” ๋‹ค์–‘ํ•œ ์–ธ์–ด๋กœ ๋‚ ์งœ๋ฅผ ํฌ๋งทํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์—ฌ, ๊ตญ์ œํ™”๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ์œ ์—ฐํ•œ ํŒŒ์‹ฑ ๋ฐ ํฌ๋งทํŒ…: ๋‹ค์–‘ํ•œ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ํ˜•์‹์„ ์‰ฝ๊ฒŒ ํŒŒ์‹ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ ํฌ๋งท์œผ๋กœ ๋‚ ์งœ๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

pendulum: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ๊ฐ•๋ ฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

pendulum: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๋Š” ๊ฐ•๋ ฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | WikiDocs

ํ•จ๊ป˜ํ•ด์š” ํŒŒ์ด์ฌ ์ƒํƒœ๊ณ„
sdispater/pendulum
Python datetimes made easy

pendulum[3]์€ ํŒŒ์ด์ฌ์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๊ฐ•๋ ฅํ•˜๊ณ  ์‰ฌ์šด ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. datetime ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋Šฅ์„ ๋Œ€์ฒดํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•˜๋ฉฐ, ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ์ฒ˜๋ฆฌ๋ฅผ ๋”์šฑ ์ง๊ด€์ ์ด๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. pendulum์€ ์‹œ๊ฐ„๋Œ€ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๊ณ , ๋”์šฑ ์ •ํ™•ํ•œ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ์—ฐ์‚ฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ์ƒ์ ์œผ๋กœ ์ง๋ฉดํ•˜๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์— ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ
  • ํ–ฅ์ƒ๋œ ์‹œ๊ฐ„๋Œ€ ์ง€์›: ์‹œ๊ฐ„๋Œ€๋ฅผ ๊ฐ„๋‹จํ•˜๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ
  • ์‚ฌ๋žŒ ์นœํ™”์ ์ธ ํ˜•์‹: ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์ธ๊ฐ„์ด ์ฝ๊ธฐ ์‰ฌ์šด ํ˜•์‹์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜
  • ํ’๋ถ€ํ•œ ์—ฐ์‚ฐ ๊ธฐ๋Šฅ: ๋‚ ์งœ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜, ํŠน์ • ๊ธฐ๊ฐ„์„ ๋”ํ•˜๊ณ  ๋นผ๋Š” ๋“ฑ์˜ ์—ฐ์‚ฐ์„ ์ง€์›
  • ๋ถˆ๋ณ€์„ฑ: pendulum์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ๊ฐ์ฒด๋Š” ๋ถˆ๋ณ€(immutable)์ด๊ธฐ ๋•Œ๋ฌธ์—, ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉ
  • ๊ตญ์ œํ™” ์ง€์›: ๋‹ค๊ตญ์–ด๋กœ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ํ˜•์‹ํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณต

python-dateutil: datetime ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ™•์žฅํŒ

python-dateutil: datetime ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ™•์žฅํŒ | WikiDocs

ํ•จ๊ป˜ํ•ด์š” ํŒŒ์ด์ฌ ์ƒํƒœ๊ณ„
dateutil/dateutil
Useful extensions to the standard Python datetime features

python-dateutil ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ณต์žกํ•œ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๊ณ„์‚ฐ์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ datetime์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‹ค์–‘ํ•œ ๋‚ ์งœ/์‹œ๊ฐ„ ํฌ๋งท์˜ ํŒŒ์‹ฑ, ์ƒ๋Œ€์  ๋ฐ ์ ˆ๋Œ€์  ๋‚ ์งœ/์‹œ๊ฐ„ ๊ณ„์‚ฐ, ์‹œ๊ฐ„๋Œ€ ์ฒ˜๋ฆฌ ๋“ฑ์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๊ด€๋ จ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ
  • ๋‚ ์งœ/์‹œ๊ฐ„ ํฌ๋งท ํŒŒ์‹ฑ: ๋‹ค์–‘ํ•œ ๋ฌธ์ž์—ด ํฌ๋งท์˜ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์„ ํŒŒ์ด์ฌ datetime ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ๋Œ€์  ๋ฐ ์ ˆ๋Œ€์  ๋‚ ์งœ/์‹œ๊ฐ„ ๊ณ„์‚ฐ: ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์˜ ๋ง์…ˆ, ๋บ„์…ˆ๊ณผ ๊ฐ™์€ ๊ณ„์‚ฐ์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ๊ฐ„๋Œ€ ์ฒ˜๋ฆฌ: ์‹œ๊ฐ„๋Œ€๋ฅผ ๊ณ ๋ คํ•œ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๊ณ„์‚ฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณต์žกํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•œ ๋ฐ˜๋ณต ๋ฐœ์ƒ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ: ์˜ˆ๋ฅผ ๋“ค์–ด, "๋งค์›” ๋งˆ์ง€๋ง‰ ๊ธˆ์š”์ผ"๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ๊ทœ์น™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

zoneinfo, pytz: IANA ์‹œ๊ฐ„๋Œ€ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

zoneinfo, pytz: IANA ์‹œ๊ฐ„๋Œ€ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | WikiDocs

ํ•จ๊ป˜ํ•ด์š” ํŒŒ์ด์ฌ ์ƒํƒœ๊ณ„

IANA ์‹œ๊ฐ„๋Œ€ ํ‘œํ˜„์„ ์œ„ํ•œ pytz์™€ zoneinfo์˜ ๋น„๊ต

ํŠน์ง•pytzzoneinfo (Python 3.9 ์ด์ƒ)
์„ค์น˜๋ณ„๋„ ์„ค์น˜ ํ•„์š” (pip install pytz)๊ธฐ๋ณธ ์ œ๊ณต (Python 3.9 ์ด์ƒ)
์‚ฌ์šฉ๋ฒ•์‹œ๊ฐ„๋Œ€ ์„ค์ • ์‹œ replace ๋ฉ”์„œ๋“œ ์‚ฌ์šฉdatetime ๊ฐ์ฒด์— ์ง์ ‘ ์‹œ๊ฐ„๋Œ€ ์ง€์ • ๊ฐ€๋Šฅ
ํ†ตํ•ฉ์„ฑdatetime ๋ชจ๋“ˆ๊ณผ ํ†ตํ•ฉ ๊ฐ€๋Šฅdatetime ๋ชจ๋“ˆ๊ณผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ตํ•ฉ
์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคOlson/IANA ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉIANA ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ
ํ˜ธํ™˜์„ฑPython 3.9 ์ด์ „ ๋ฒ„์ „์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋ŠฅPython 3.9 ์ด์ƒ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์œ ์ง€ ๊ด€๋ฆฌ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์œ ์ง€ ๊ด€๋ฆฌPython ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ

์ €์ž์˜ ์˜๊ฒฌ:

  • Python 3.9 ์ด์ƒ: zoneinfo๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๊ฐ„ํŽธํ•˜๊ณ  ์ž์—ฐ์Šค๋Ÿฌ์›€.
  • Python 3.9 ๋ฏธ๋งŒ: pytz๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉ.

pytz: Olson/IANA ์‹œ๊ฐ„๋Œ€ ์ฒ˜๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

stub42/pytz
pytz Python historical timezone library and database

pytz ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Python์—์„œ ์‹œ๊ฐ„๋Œ€(time zone)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ „ ์„ธ๊ณ„์˜ ๋ชจ๋“  ์‹œ๊ฐ„๋Œ€๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ํ‘œ์ค€ ์‹œ๊ฐ„๋Œ€์™€ ์ผ๊ด‘ ์ ˆ์•ฝ ์‹œ๊ฐ„์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. Python์˜ ๊ธฐ๋ณธ datetime ๋ชจ๋“ˆ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ์‹œ๊ฐ„๋Œ€์˜ ์‹œ๊ฐ„์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ
  • ์ „ ์„ธ๊ณ„์˜ ๋ชจ๋“  ์‹œ๊ฐ„๋Œ€ ์ง€์›
  • ํ‘œ์ค€ ์‹œ๊ฐ„๋Œ€์™€ ์ผ๊ด‘ ์ ˆ์•ฝ ์‹œ๊ฐ„์ œ ์ž๋™ ๊ด€๋ฆฌ
  • ์‹œ๊ฐ„๋Œ€ ๋ณ€ํ™˜ ๊ธฐ๋Šฅ ์ œ๊ณต
  • datetime ๊ฐ์ฒด์™€์˜ ํ†ตํ•ฉ

zoneinfo: IANA ์‹œ๊ฐ„๋Œ€ ์ง€์› ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

zoneinfo[4] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Python 3.9 ๋ฒ„์ „๋ถ€ํ„ฐ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ผ๋ถ€๋กœ ์ถ”๊ฐ€๋œ ๋ชจ๋“ˆ๋กœ, IANA ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์‹œ๊ฐ„๋Œ€ ์ฒ˜๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๋Š” ๋‹ค์–‘ํ•œ ์‹œ๊ฐ„๋Œ€์— ๋Œ€ํ•œ ์ •ํ™•ํ•œ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹œ๊ฐ„๋Œ€ ๋ณ€ํ™˜๊ณผ ๊ด€๋ จ๋œ ๋ณต์žก์„ฑ์„ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ
  • ์‹œ๊ฐ„๋Œ€ ์ง€์›: zoneinfo.ZoneInfo ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „ ์„ธ๊ณ„์˜ ๋‹ค์–‘ํ•œ ์‹œ๊ฐ„๋Œ€ ์ •๋ณด๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ž๋™ ์—…๋ฐ์ดํŠธ: ์‹œ์Šคํ…œ ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, IANA ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ์ž๋™์œผ๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
  • ํ˜ธํ™˜์„ฑ: Python์˜ datetime ๋ชจ๋“ˆ๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋˜์–ด, ์‹œ๊ฐ„๋Œ€๋ฅผ ๊ณ ๋ คํ•œ ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๊ณ„์‚ฐ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


  1. https://docs.python.org/ko/3/library/datetime.html โ†ฉ๏ธŽ

  2. https://arrow.readthedocs.io/ โ†ฉ๏ธŽ

  3. https://pendulum.eustace.io/ โ†ฉ๏ธŽ

  4. https://docs.python.org/ko/3/library/zoneinfo.html โ†ฉ๏ธŽ