ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬에서 시간값 다루기 - Datetime, Timedelta
    Data Science/데이터마이닝 2022. 10. 7. 13:14
    반응형

    파이썬에서 datetime 라이브러리를 사용하여 시간값을 다룰수 있다.

     

    1.현재 시간 출력하기 및 과거/미래 시간 계산하기

    datetime 라이브러리로 현재시간을 받아올 수 있으며,

    timedelta 라이브러리로 datetime 객체의 더하기, 빼기를 수행할 수 있다.

    from datetime import datetime, timedelta
    
    # 현재 시간
    print('현재시간 : ',datetime.now())
    
    # 하루 전 시간
    delta = datetime.now() - timedelta(1)
    print('하루전 시간 : ',delta)
    
    # 이주일 전 시간
    delta = datetime.now() - timedelta(14)
    print('이주전 시간 : ',delta)
    
    # 1년 전 시간
    delta = datetime.now() - timedelta(365)
    print('일년전 시간 : ',delta)
    
    # timedelta() 객체에 곱하기
    delta = datetime.now() - timedelta(1)*365
    print('일년전 시간2 : ',delta)
    
    # timedelta() 객체에 곱하기, 나누기는 적용 가능하며 더하기, 빼기는 불가능하다.

    2. Datetime 객체 생성하기

    2.1 Datetime 객체 생성

    # 원하는 시간 객체 만들기
    
    # 년,월,일 지정
    stamp = datetime(2022, 10, 7)
    print(stamp)
    #=> 2022-10-07 00:00:00
    print(type(stamp))
    #=> <class 'datetime.datetime'>
    
    # 년,월,일,시,분,초 지정
    stamp = datetime(2022, 10, 7, 11, 46, 56)
    print(stamp)
    #=> 2022-10-07 11:46:56

    2.2 문자열로부터 Datetime 정보 읽어와서 객체 만들기

    # 문자열에서 읽어오기
    
    # case1
    value = '2022-10-7'
    stamp = datetime.strptime(value, '%Y-%m-%d')
    print(stamp)
    #=> 2022-10-07 00:00:00
    print(type(stamp))
    #=> <class 'datetime.datetime'>
    
    # case2
    value = '2022/10/7 12:11:05'
    stamp = datetime.strptime(value, '%Y/%m/%d %H:%M:%S')
    print(stamp)
    #=> 2022-10-07 12:11:05
    print(type(stamp))
    #=> <class 'datetime.datetime'>

    Datetime을 인식하는 문자들은 아래와 같다.

    %Y 네자리 연도값 (2022년 등)
    %y 두자리 연도값 (22년 등)
    %m 두자리 월값 (01 ~ 12 월)
    %d 두자리 일값 (01 ~ 31 일)
    %H 두자리 시간(00 ~ 23 시)
    %I 두자리 시간(01 ~ 12 시)
    %M 두자리 분(00 ~ 59 분)
    %S 두자리 초(00 ~ 61), 61이 포함된 이유는 윤초(leap second) 때문이다
    %w 요일정보(0 ~ 6), 0: 일요일, 1:월요일, ... , 6:토요일
    %a 요얼정보(Sun, Mon, ... , Sat)
    %A 요일정보(Sunday, Monday, ... , Saturday)
    %p 오전 오후(AM,PM,am,pm)
    %F %Y-%m-%d 의 약어(shortcut)
    %D %Y/%m/%d 의 약어(shortcut)

    2.3 Datetime 정보를 문자로 출력하기

    strftime 메소드를 사용하여 2.2와 유사하게 사용 가능하다.

    # 문자열로 출력하기
    stamp = datetime(2022, 10, 7)
    stamp.strftime('%Y-%m-%d')
    #=> '2022-10-07'

     

    반응형

    댓글

Designed by Tistory.