본문 바로가기
IT/파이썬

[모듈] time, datetime(timedelta) 모듈로 날짜/시간 구하기

by 옥탑방개발자 2020. 9. 23.
728x90

# Python-Time-Module
# time, datetime 모듈로 날짜/시간 구하기

 

time

# time 함수를 호출하면 1970년 1월 1일 0시 0분 0초 이후 경과한 시간을 초단위로 반환함
# 시간대는 UTC(Universal TIme Coordinated, 협정 세계시)를 사용

>>> import time
>>> time.time()
1600824133.5122118

 

 

 

# time모듈의 localtime함수를 사용해 time에서 반환한 값을 날짜 시간 형태로 반환함
# localtime은 현재 지역의 시간을 사용
# 우리나라는 UTC + 9시간을 더한 KST(Korea Standard Time, 한국 표준시)를 사용(=UTC+09:00)
# tm_wday는 월~일, 0~6 / tm_yday는 1월1일부터 경과한 일 수, tm_isdst는 서머타임 여부를 나타냄
# time.localtime(초)

>>> time.localtime(time.time())
>>> time.localtime()
>>> type(time.localtime(time.time())
>>> type(time.localtime())
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=23, tm_hour=10, tm_min=49, tm_sec=54, tm_wday=2, tm_yday=267, tm_isdst=0) 
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=23, tm_hour=10, tm_min=49, tm_sec=54, tm_wday=2, tm_yday=267, tm_isdst=0) 
<class 'time.struct_time'> 
<class 'time.struct_time'>

 

 

 

# 날짜/시간 포맷
# stftime은 날짜/시간 포맷으로 출력할 수 있음
# time.strftime('포맷', 시간객체)
# %c는 날짜/시간 같이 출력
# strftime의 타입은 str

>>> time.strftime('%Y-%m-%d', time.localtime(time.time())
2020-09-23
>>> time.strftime('%c', time.localtime(time.time()))
Wed Sep 23 11:00:37 2020

 

 

 

 

datetime

# datetime 모듈로 현재 날짜/시간 구하기
# today함수를 사용해서 현재 날짜/시간 구하기(현재 시간대 기준, KST)
# datetime.datetime.today()

>>> import datetime
>>> datetime.datetime.today()
2020-09-23 12:56:34.545292

 

 

 

# datetime 모듈로 UTC기준 날짜/시간 구하기
# pytz 모듈설치 및 시간대 지정
# datetime.datetime.now(시간대객체)

pip install pytz
>>> datetime.datetime.now(pytz.timezone('UTC'))
2020-09-23 03:56:34.545292+00:00

 

 

 

# 특정 날짜와 시간으로 객체만들기
# datetime.datetime 연, 월, 일, 시, 분, 초, 마이크로초를 넣어서 객체 만들 수 있음
# datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)

>>> datetime.datetime(2020, 9, 23)
2020-09-23 00:00:00

 

 

 

 

# 문자열로 날짜/시간 객체 만들기
#datetime.datetime.strptime('날짜문자열', '포맷')

>>> datetime.datetime.strptime('2020-09-23', '%Y-%m-%d')
2020-09-23 00:00:00

 

 

 

# 날짜/시간 객체를 문자열로 만들기
# datetime객체.strftime('포맷')
# time, datetime객체 둘다 strftime('포맷')을 사용해서 str타입으로 만들 수 있음

>> datetime.datetime.strptime('2020-09-23', '%Y-%m-%d').strftime('%Y-%m-%d')
2020-09-23
>> datetime.datetime.strptime('2020-09-23', '%Y-%m-%d').strftime('%c')
Wed Sep 23 00:00:00 2020

 

 

 

# 날짜와 시간 속성에 접근하기

>>> today = datetime.datetime.today()
>>> today.year, today.month, today.day, today.hour, today.minute, today.second, today.microsecond
2020 9 23 14 27 12 648134



 

 

# 날짜/시간 차이 계산하기
# datetime 모듈에서 datetime.timedelta를 두시간 차를 구 할 수 있음
# datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

>>> from datetime import timedelta 
>>> datetime.datetime(2020, 9, 23, 13, 24, 12) - timedelta(days=20)
>>> datetime.datetime(2020, 1, 23, 13, 24, 12) - datetime.datetime(2020, 4, 23, 23, 22, 3)
>>> datetime.datetime(2020, 9, 23, 13, 24, 12) - datetime.datetime(2020, 4, 23, 23, 22, 3)
2020-09-03 13:24:12
-92 days, 14:02:09 
152 days, 14:02:09

 

 

 


time module 핵심 요약

print(time.time())
print(time.localtime())
1600840640.604921 
time.struct_time(tm_year=2020, tm_mon=9, tm_mday=23, tm_hour=14, tm_min=57, tm_sec=20, tm_wday=2, tm_yday=267, tm_isdst=0)

 

 

 

datetime module 핵심 요약

print(datetime.datetime.today())
print(datetime.datetime.now())
print(datetime.datetime.now(pytz.timezone('UTC')))
print(datetime.datetime(2020, 9, 23))
2020-09-23 14:57:20.632220
2020-09-23 14:57:20.632220 
2020-09-23 05:57:20.632220+00:00 
2020-09-23 00:00:00

 

 

 

timedelta class

#from datetime
print(datetime.datetime(2020, 9, 23, 13, 24, 12) - timedelta(days=20))
print(datetime.datetime(2020, 1, 23, 13, 24, 12) - datetime.datetime(2020, 4, 23, 23, 22, 3))
2020-09-03 13:24:12 
-92 days, 14:02:09
#strftime('포맷')으로 str타입으로 변경가능
728x90