๋ ์ง์ ์๊ฐ
In Python ๋ ์ง์ ์๊ฐ์ ๋ค๋ฃจ๋ Methode lernen wir. datetime Modul์ ์๊ฐ ๊ด๋ จ ์์ ์ ํต์ฌ ๋๊ตฌ.
datetime Modul ์๊ฐ โฐโ
datetime Modul์ ์ฃผ์ Klasse:
datetime: ๋ ์ง์ ์๊ฐ์ ํจ๊ป ๋ค๋ฃธdate: ๋ ์ง๋ง ๋ค๋ฃธtime: ์๊ฐ๋ง ๋ค๋ฃธtimedelta: ์๊ฐ ์ฐจ์ด๋ฅผ ๋ค๋ฃธtimezone: ์๊ฐ๋ ์ ๋ณด
ํ์ฌ ๋ ์ง์ ์๊ฐโ
ํ์ฌ datetime ์ป๊ธฐโ
from datetime import datetime
# ํ์ฌ ๋ ์ง์ ์๊ฐ
now = datetime.now()
print(now) # 2025-11-27 14:30:45.123456
# UTC ํ์ฌ ์๊ฐ
utc_now = datetime.utcnow()
print(utc_now)
# ๊ฐ ์์ ์ ๊ทผ
print(f'์ฐ๋: {now.year}')
print(f'์: {now.month}')
print(f'์ผ: {now.day}')
print(f'์: {now.hour}')
print(f'๋ถ: {now.minute}')
print(f'์ด: {now.second}')
print(f'๋ง์ดํฌ๋ก์ด: {now.microsecond}')
ํ์ฌ ๋ ์ง๋ง ์ป๊ธฐโ
from datetime import date
# ์ค๋ ๋ ์ง
today = date.today()
print(today) # 2025-11-27
print(f'์ฐ๋: {today.year}')
print(f'์: {today.month}')
print(f'์ผ: {today.day}')
print(f'์์ผ: {today.weekday()}') # 0(์) ~ 6(์ผ)
print(f'์์ผ: {today.isoweekday()}') # 1(์) ~ 7(์ผ)
datetime ๊ฐ์ฒด ์์ฑํ๊ธฐโ
๋ ์ง์ ์๊ฐ ์์ฑโ
from datetime import datetime, date, time
# ํน์ ๋ ์ง์ ์๊ฐ ์์ฑ
dt = datetime(2025, 11, 27, 14, 30, 45)
print(dt) # 2025-11-27 14:30:45
# ๋ ์ง๋ง ์์ฑ
d = date(2025, 11, 27)
print(d) # 2025-11-27
# ์๊ฐ๋ง ์์ฑ
t = time(14, 30, 45)
print(t) # 14:30:45
# ๋ ์ง์ ์๊ฐ ๊ฒฐํฉ
dt_combined = datetime.combine(d, t)
print(dt_combined) # 2025-11-27 14:30:45
๋ฌธ์์ด๊ณผ datetime ๋ณํ ๐โ
strftime: datetime โ ๋ฌธ์์ดโ
from datetime import datetime
now = datetime.now()
# ๋ค์ํ ํฌ๋งท์ผ๋ก ๋ณํ
print(now.strftime('%Y-%m-%d')) # 2025-11-27
print(now.strftime('%Y๋
%m์ %d์ผ')) # 2025๋
11์ 27์ผ
print(now.strftime('%H:%M:%S')) # 14:30:45
print(now.strftime('%Y-%m-%d %H:%M:%S')) # 2025-11-27 14:30:45
print(now.strftime('%Y/%m/%d %p %I:%M')) # 2025/11/27 PM 02:30
์ฃผ์ ํฌ๋งท ์ฝ๋โ
| ์ฝ๋ | ์๋ฏธ | ์์ |
|---|---|---|
%Y | 4์๋ฆฌ ์ฐ๋ | 2025 |
%y | 2์๋ฆฌ ์ฐ๋ | 25 |
%m | ์ (01-12) | 11 |
%B | ์ ์ด๋ฆ | November |
%b | ์ ์ด๋ฆ ์ถ์ฝ | Nov |
%d | ์ผ (01-31) | 27 |
%A | ์์ผ | Wednesday |
%a | ์์ผ ์ถ์ฝ | Wed |
%H | ์ (00-23) | 14 |
%I | ์ (01-12) | 02 |
%M | ๋ถ (00-59) | 30 |
%S | ์ด (00-59) | 45 |
%p | AM/PM | PM |
%f | ๋ง์ดํฌ๋ก์ด | 123456 |
strptime: ๋ฌธ์์ด โ datetimeโ
from datetime import datetime
# ๋ฌธ์์ด์ datetime์ผ๋ก ๋ณํ
date_str = '2025-11-27'
dt = datetime.strptime(date_str, '%Y-%m-%d')
print(dt) # 2025-11-27 00:00:00
# ์๊ฐ ํฌํจ
datetime_str = '2025-11-27 14:30:45'
dt = datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')
print(dt)
# ๋ค์ํ ํ์
formats = [
('2025/11/27', '%Y/%m/%d'),
('11/27/2025', '%m/%d/%Y'),
('27-Nov-2025', '%d-%b-%Y'),
('2025๋
11์ 27์ผ', '%Y๋
%m์ %d์ผ'),
]
for date_str, fmt in formats:
dt = datetime.strptime(date_str, fmt)
print(f'{date_str} โ {dt}')
timedelta: ์๊ฐ ์ฐจ์ด ๊ณ์ฐ โฑ๏ธโ
Grundlegend ์ฌ์ฉ๋ฒโ
from datetime import datetime, timedelta
# timedelta ์์ฑ
delta = timedelta(
days=7,
hours=3,
minutes=30,
seconds=45
)
print(delta) # 7 days, 3:30:45
print(f'์ด ์ด: {delta.total_seconds()}')
๋ ์ง ๊ณ์ฐโ
from datetime import datetime, timedelta
now = datetime.now()
# ๋ฏธ๋ ๋ ์ง ๊ณ์ฐ
tomorrow = now + timedelta(days=1)
next_week = now + timedelta(weeks=1)
next_month = now + timedelta(days=30)
one_hour_later = now + timedelta(hours=1)
print(f'๋ด์ผ: {tomorrow}')
print(f'๋ค์ ์ฃผ: {next_week}')
# ๊ณผ๊ฑฐ ๋ ์ง ๊ณ์ฐ
yesterday = now - timedelta(days=1)
last_week = now - timedelta(weeks=1)
print(f'์ด์ : {yesterday}')
print(f'์ง๋ ์ฃผ: {last_week}')