본문 바로가기
Python

파이썬 시간 format과 parse 알아보기 (time strftime(), strptime())

by 산코디 2023. 1. 24.

 

 

 

안녕하세요.

오늘은 파이썬에서 시간을 다루는 time 라이브러리의 format과 parse를 알아보려고 합니다. 프로그래밍을 하면서 시간을 다루는 상황은 정말 많이 나오는데, 시간을 다루는 기능들은 기본적으로 date 또는 time의 시간 타입 값으로 반환을 합니다. 가독성이 많이 떨어질 수 있기 때문에 우리가 알아보기 쉬운 원하는 형태로 변경해 주는 것을 format, 다시 시간 타입으로 변경하는 것을 parse라고 이해하시면 됩니다. 

 

함수 사용 방법
strftime()  :  time -> string format
strptime()  : string -> time parse

 

그러면 예제를 통해서 하나씩 알아보도록 하겠습니다 :)


예제 1

import time


def compare():
    
    # strftime
    # - date to string
    format_date = time.strftime('%Y-%m-%d %H:%M:%S')
    print('* strftime')
    print(format_date)
    print('')

    # strptime
    # - string to date
    str = '2023-01-01 09:10:05'
    print('* strptime')
    parse_date = time.strptime(str, '%Y-%m-%d %H:%M:%S')
    print(parse_date)


if __name__ == '__main__':
    compare()

간단하게 strftime을 이용하여 원하는 format으로 변경하는 코드와 다시 date 타입의 형태로 parsing 하는 코드를 작성하였습니다.

format에 추가하는 코드 값은 마지막 표를 참고하시면 됩니다.


코드 설명
time.strftime('%Y-%m-%d %H:%M:%S')
  ㄴ> 날짜 형태의 값을 원하는 format '%Y-%m-%d %H:%M:%S' 으로 변경

time.strptime(str, '%Y-%m-%d %H:%M:%S')
  ㄴ> string 형태의 값을 날짜 형태로 format을 맞춰 변경 (string 형태의 format이 맞지 않으면 에러 발생)

실행 결과

위의 실행 결과와 같이 format과 parse를 정상적으로 처리하여 print로 출력한 결과 화면입니다.

 

시간을 다루는 기능을 사용하다 보면 UTC기준을 사용할지 KST 기준을 사용할지 설정이 가능합니다.

그러면 다음은 함수의 지역의 시간 설정하는 방법을 알아보도록 하겠습니다.


예제 2

import time


def compare():

    # gmtime()
    gmt_time = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
    print('* GMT time')
    print(gmt_time)
    print('')

    # localtime()
    local_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    print('* LOCAL time')
    print(local_time)
    print('')
    
    
if __name__ == '__main__':
    compare()

위의 소스 코드를 보게 되면 strftime() 함수의 두 번째 인자값에 설정할 지역 시간 유형을 추가하면 됩니다.

 

코드 설명
time.gmtime() : UTC 국제표준시
time.localtime() : 현재 내가 위치해 있는 시간

실행 결과

 

위와 같이 gmt와 local기준으로 9시간 차이로 시간 설정이 된 모습입니다. localtime()은 현재 대한민국 표준시로 하여 나오게 되고, gmtime()은 -9시간을 한 시간이 나오게 됐습니다.

 

 

반응형

format 코드 정리

코드 설명 예시
%y 연도 (두 자릿수) 20, 21, 22
%Y 연도 (네 자릿수) 2020, 2021, 2022
%m 월 (두 자릿수) 01, 02, 03
%B 월 문자식 표현 January, February, March
%b 월 문자식 표현 줄임말 Jan, Feb, Mar
%d 일 (두 자릿수) 01, 02, 03
%H 시 (24시간) 00, 01, 02, ... 23
%I 시 (12시간) 01, 02, 03, ... 12
%p am, pm AM, PM
%M 분 (두 자릿수) 00, 01, 02
%S 초 (두 자릿수) 00, 01, 02
%Z 현재 시간대 대한민국 표준시
%A 요일 문자식 표현 Sunday, Monday, Tuesday
%a 요일 문자식 표현 줄임말 Sun, Mon, Tue
%w 요일 숫자 표현 (월-일, 0-6) 0, 1, 2, 3, 4, 5, 6
%c 날짜 요일 시분초, 현재 시간대 기준  Sun Mar 13 10:05:23 2022
%x 날짜, 현재 시간대 기준 22/15/13
%X 시간, 현재 시간대 기준 '10:05:23'
%j 1월1일부터 경과한 일 수 001, 002, 003, ... 366
%U 1년 중 주차 (주 월요일 시작 기준) 00, 01, 02, ... 52
%W 1년 중 주차 (주 월요일 시작 기준) 00, 01, 02, ... 52

time.strftime(), time.strptime() 함수를 다루면서 format & parse 처리를 할 때 위의 코드 값을 기준으로 처리를 하면 됩니다.

 


마무리

오늘은 파이썬에서 time 모듈의 strftime(), strptime() 함수의 사용 방법을 간단하게 정리해 봤습니다. 프로그래밍에서 시간 다루는 것은 정말 중요하며, format과 parse의 차이와 시간대 설정하는 방법 등 숙지를 해두신다면 큰 어려움 없이 활용이 가능합니다!

저는 시간 다루는 기능을 매번 할 때마다 헷갈려서 항상 검색을 하다가 이렇게 글로 정리를 했습니다. 제가 정리해 놓고 제 글을 많이 읽으러 올 것 같습니다.. :)

 

 

그럼 오늘도 저의 작고 소중한 글을 읽어주셔서 감사합니다!

 

 

 


* 참고 링크

https://dojang.io/mod/page/view.php?id=2463 

 

파이썬 코딩 도장: 47.4 날짜/시간 모듈 활용하기

파이썬으로 프로그래밍을 하다보면 날짜와 시간 처리를 해야 하는 경우가 자주 생깁니다. 여기서는 날짜와 시간을 표현하는 time과 datetime 모듈을 소개하겠습니다. 47.4.1  time 모듈로 현재 시간

dojang.io

 

반응형