from datetime import timedelta # datetme 모듈의 timedelta 클래스
# 1. argument로 주,일,시,분,초,밀리초,마이크로초 입력받음
# 또한 timedelta는 일,초,마이크로초의 형태로만 데이터 저장
timedelta(days=5, hours=17, minutes=30)
----------------------------------------------------------
datetime.timedelta(days=5, seconds=63000)
# 2. 시간 계산 가능
from datetime import date
today = date.today() # 오늘날짜
one_week = timedelta(weeks=1)
next_week = today + one_week
next_week
-----------------------------------------
today = datetime.date(2023, 7, 18)
one_week = datetime.timedelta(days=7)
next_week = datetime.date(2023, 7, 25)
# 3. 시간에 연산 가능
two_weeks = one_week * 2 # 숫자 연산 가능
two_weeks == timedelta(days=14) # True
----------------------------------------
datetime.timedelta(days=14)
2. timezone
from datetime import timezone
#1. korea의 시간 구하기 위해 utc 시간에 +9시간
timezone(timedelta(hours=9))
-----------------------------------------------------
datetime.timezone(datetime.timedelta(seconds=32400))
#2. utc 시간 구하기
timezone(timedelta(0))
timezone.utc # timezone.utc해서 바로 utc 시간 구할 수 있음
----------------------------------------------------------
datetime.timezone.utc
3. date
from datetime import date
# date
# 1. argument로 날짜 입력받음
# ex) 2023(연도), 7(월), 18(일)
date( 2023, 7, 18 )
# 2. today() 사용 가능 ( 날짜까지만 생성 )
date.today()
# 3. isoformat() 사용하여 'YYYY-MM-DD' 의 문자열 형태로 변경 가능
date.today().isoformat()
# 4. fromisoformat() 사용하면 기존의 date 형태로 변경 가능
date.fromisoformat('2023-07-18')
# 5. year, month, day 사용 가능
date.today().year
# 6. weekday, isoweekday 메서드 (요일을 숫자로 반환)
date.today().weekday() # 월요일이 0
date.today().isoweekday() # 월요일이 1
4. time
from datetime import time
# 1. argument로 시간 입력받음
# ex) 13(시간), 45(분), 20(초)
time(13, 45, 20)
------------------------------
datetime.time(13, 45, 20)
# 2. isoformat() 사용하여 'hh : mm : ss' 의 문자열 형태로 변경 가능
time(13, 45, 20).isoformat()
------------------------------------------------------------------
'13:45:20'
# 3. fromisoformat() 사용하여 문자열 형태에서 datetime형태로 변경 가능
time.fromisoformat('13:45:20')
-----------------------------------------------------------------------
# datetime.time(13, 45, 20)
# 4. hour, minute, second, microsecond, 사용 가능
time(13, 45, 20).hour
-------------------------------------------------
13
5. datetime
from datetime import datetime
# 1. argument로 연,월,일, 시, 분, 초 입력받음
datetime( 2023, 7, 18, 13, 45, 20 )
# 2. date클래스와 time클래스의 argument 결합 가능
# datetime에 입력하다보면 인자가 너무 많아 헷갈릴 가능성 있음
# 그런 경우에 각각 입력하여 결합 기능 사용
d = date(2023, 7, 18)
t = time(13, 45, 20)
datetime.combine(d,t)
-------------------------------------------------------------
datetime.datetime(2023, 7, 18, 13, 45, 20)
# 3. now() 메서드로 현재 날짜 및 시간 출력 가능
datetime.now()
-----------------------------------------------
datetime.datetime(2023, 7, 18, 9, 34, 55, 342438)
# 4. strftime으로 날짜 형태에서 원하는 str 형태(format)로 변경 가능
datetime.today().strftime('%Y/%m/%d')
-------------------------------------------------------------------
'2023/07/18'
# 5. strptime으로 str 형태에서 날짜 형태로 변경 가능
datetime.strptime('2020/07/18', '%Y/%m/%d')
----------------------------------------------------
datetime.datetime(2020, 7, 18, 0, 0)
# 문자열에 날짜 데이터만 있고 시간 데이터는 없기 때문에 모두 0으로 처리
# strftime은 date,time 클래스에서도 지원
# strptime은 datetime 클래스에서만 지원