[파이썬] 날짜 - 시간 ( datetime / time ) 모듈 활용

2021. 1. 6. 07:31기초

728x90

 

 

 

 

 

 datetime 모듈

import datetime
from dateutil.relativedelta import relativedelta

cdate = datetime.datetime.today() # 현재 날짜 가져오기

year = cdate.strftime("%y")    # 현재 연도 가져오기
month =  cdate.strftime("%m")  # 현재 월 가져오기
day = cdate.strftime("%d")     # 현재 일 가져오기
hour = cdate.hour              # 현재 시간 가져오기
min = cdate.minute             # 현재 분 가져오기
sec = cdate.second             # 현재 초 가져오기

cdate.strftime("%Y%m%d")
cdate.strftime("%Y%m%d%H%M%S")    # YYYYmmddHHMMSS 형태의 시간 출력
cdate.strftime("%Y/%m/%d %H:%M:%S")  # YYYY/mm/dd HH:MM:SS 형태의 시간 출력

#-------------------------------------------------------------------------

first_day = cdate.replace(day=1)                    # 현재 달의 1일

p_first_day = first_day - relativedelta(months=1)   # 지난 달의 1일 
p_last_day = first_day - datetime.timedelta(days=1) # 지난 달의 말일

p_month = cdate - relativedelta(months=3)           # 3개월 전의 달
n_month = cdate + relativedelta(months=3)           # 3개월 후의 달

yesterday = cdate - datetime.timedelta(days=1)      # 어제 날짜
tomorrow = cdate + datetime.timedelta(days=1)       # 내일 날짜

print('>> 현재 달의 1일 : ' + first_day.strftime("%Y-%m-%d"))
print('>> 지난 달의 1일 : ' + p_first_day.strftime("%Y-%m-%d"))
print('>> 지난 달의 말일 : ' + p_last_day.strftime("%Y-%m-%d"))
print('>> 3개월 전의 달 : ' + p_month.strftime("%m"))
print('>> 3개월 후의 달 : ' + n_month.strftime("%m"))
print('>> 어제 날짜 : ' + yesterday.strftime("%Y-%m-%d"))
print('>> 내일 날짜 : ' + tomorrow.strftime("%Y-%m-%d"))

 

 

 

 

datetime 클래스의 today() 함수를 사용하여, 오늘 날짜를 얻는다.

    datetime 클래스는 date와 time 클래스에서 지원하는 대부분의 기능을 지원하므로, 주로 사용함.

 

 timedelta 클래스는 기간을 표현하기 위해서 사용.

    주, 일시, 분, 초, 마이크로초, 밀리초 를 인자로 받으며,  유연한 날짜 / 시간 계산을 할 수 있다.

    위 코드에서는 일(days) 연산에 관해 예를 들었음.

 

 relativedelta 클래스 (dateutil 모듈) -  timedelta 클래스에 (months) 인자가 없으므로 사용함.

 

 

 

 


 

 time 모듈

import time

now = time.localtime()
date_time = '%04d-%02d-%02d %02d:%02d:%02d' % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)

print(date_time)

 

 

 

 

 localtime() 함수는 주어진 timestamp 값을 현지 시간대 기준의 time_struct 타입 데이터로 변환.

 

( timestamp 1575142526.500323를 보고, 무슨 날짜와 시간을 나타내는지를 알 수 없으므로,

  내부적으로 날짜와 시간을 표현하기 위해서 9개의 속성를 갖는 time_struct 클래스를 사용 )

 

tm_year     년도 ( 예: 1999 )
tm_mon     월 ( 1~12 )
tm_mday     일 ( 1~31 )
tm_hour     시 ( 0~23 )
tm_min     분 ( 0~59 )
tm_sec     초 ( 0~61 )
tm_wday     각 요일을 숫자로 나타냅니다.  (월요일은 '0' )
tm_yday     1월 1일부터 오늘까지 누적된 날짜.  (1~366)
tm_isdst     일광절약 시간제 (서머타임) 를 나타냅니다  (0, 1, -1)

 

 

 

 

 

반응형