Python 기초 - Date and Time
날짜와 시간
datetime
모듈은 날짜와 시간들을 간단한 혹은 복잡한 방법으로 다룰수 있게 해주는 클래스들을 제공합니다.
Datetime 모듈은 세가지 기본 객체 타입들을 가지고 있습니다.
1) date
2) time
3) datetime
date
1 2 3 4 5 6 7 8 9
|
import datetime today = datetime.date.today() print(f'오늘 날짜는 {today} 입니다')
new_year = datetime.date(2021,1,1) print(f'올해 신년 날짜는 {new_year} 입니다')
|
Time
1 2 3 4 5 6 7 8 9
|
import datetime
noon = datetime.time(12, 0, 0) print(noon)
three_pm = datetime.time(15, 0, 0) print(three_pm)
|
datetime
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
import datetime now = datetime.datetime.now()
print(now)
import datetime
my_birthday = datetime.datetime(2000, 12, 18, 18, 28, 0) print(my_birthday)
|
날짜를 순회하기
시작하는 날짜부터 끝나는 날짜 사이에 날짜들을 순회하면서 추력할수 있습니다
예를들면,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
import datetime
day_delta = datetime.timedelta(days=1)
start_date = datetime.date.today()
end_date = start_date + 7 * day_delta
for i in range((end_date - start_date).days) print(start_date + i * day_delta)
|
시간 차이를 계산할수 있습니다
timedelta 모듈은 시간 사이의 차이를 계산할수 있습니다.
예를들면,
1 2 3 4 5 6 7 8 9 10
| from datetime import datetime, timedelta now = datetime.now() print(now)
later = datetime(2020, 12, 18)
print(later)
delta = later - now
|
delta 는 timedelta type 입니다
1 2 3 4 5 6 7 8 9
| from datetime import datetime, timedelta now = datetime.now() later = datetime(2020, 12, 18)
delta = later - now
print(type(delta)) print(delta.days) print(delta.seconds)
|
특정 날짜 기준으로 특정 일수 이후의 날짜
1 2 3 4 5 6 7 8 9
|
from datetime import date, timedelta
current_date = date.today().isoformat() days_after = (date.today() + timedelta(days=30).isoformat())
print(current_date) print(days_after)
|
특정 날짜 이후 특정 일수 이전 날짜
1 2 3 4 5 6 7
| from datetime import date, timedelta
current_date = date.today().isoformat() days_before = (date.today() - timedelta(days=30).isoformat())
print(current_date) print(days_before)
|
간단한 날짜 계산
1 2 3 4 5 6 7 8 9 10 11 12 13
| import datetime
today = datetime.date.today() print("오늘은 {}".format(today))
yesterday = today - datetime.timedelta(days=1) print("어제는 {}".format(yesterday))
tomorrow = today + datetime.timedelta(days=1) print('내일은 {}'.format(tomorrow))
print("어제와 오늘 사이의 시간 : {}".format(tomorrow - yesterday))
|
Timezone 바꾸기
타임존을 바꾸기 위해서는, datetime 객체가 timezone 을 알아야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
from datetime import datetime from dateutil import tz
utc = tz.tzutc() local = tz.tzlocal()
utc_now = datetime.utcnow() print(utc_now)
utc_now = utc_now.replace(tzinfo=utc) print(utc_now)
local_now = utc_now.astimezone(local) print(local_now)
|