본문 바로가기
Python

[Python] 날짜 포맷(Date format) 데이터 파싱하기

by A6K 2021. 5. 7.

파이썬의 자료형들 이외에 가장 많이 사용되는 데이터 패턴이 바로 문자열 형태로 표현된 날짜 데이터일 것이다. 문자열 형태로 표현되어 있는 날짜 데이터를 파싱해서 사용하는 경우가 매우 빈번하다.

파이썬에서는 'datetime' 라이브러리를 이용해서 문자열 형태로 표현되어 있는 날짜 포맷 데이터를 파싱할 수 있다.

import datetime

date_string = '20191101'
date_format = '%Y%m%d'

try:
    date_obj = datetime.datetime.strptime(date_string, date_format)
    print(date_obj)
except ValueError:
    print("Incorrect data format, should be YYYYMMDD")

날짜 데이터를 파싱하는 간단한 예제다.

날짜 데이터를 담고 있는 문자열과 날짜 포맷을 이용해서 파싱하게 된다. 파싱된 결과는 date_obj변수에 의해 참조된다. 이 객체를 출력하면 

이런 결과를 얻게 된다. 

date_string 변수에 있는 날짜 데이터를 date_format에 맞게 파싱해 온다. 만약 date_format에 맞지 않은 날짜 문자열을 파싱하려고하면 ValueError가 발생한다. 이 경우 "Incorrect data format, should be YYYYMMDD"을 화면에 출력하도록 작성했다.

날짜 포맷

결국 중요한 것은 날짜 포맷이다. 어떤 포맷으로 표현된 날짜를 다룰 것인지를 정확하게 알아야한다. datetime 라이브러리의 strptime() 함수는 다음 디렉티브들을 특별한 의미로 해석한다.

디렉티브 의미 예시
%a 간략한 요일 이름 Sun, Mon, ..., Sat (en_US, 영어)
So, Mo, ..., Sa (de_DE, 독일어)
%A 긴 요일 이름 Sunday, Monday, ... , Satureday (en_US, 영어)
Sonntag, Montag, ... , Samstag (de_DE, 독일어)
%w 번호로 표현된 요일 0 (Sunday), 1 (Monday), ... , 6 (Saturday)
%d 해당 월의 일자 (0으로 패딩) 01, 02, 03, ... , 31
%b 간략한 월 이름 Jan, Feb, ..., Dec (en_US)
Jan, Feb, ..., Dez (de_DE)
%B 긴 월 이름 January, February, ... , December (en_US)
Januar, Februar, ..., Dezember (de_DE)
%m 해당 년도의 숫자로 표현된 월 (0으로 패딩) 01, 02, ..., 12
%y 두 자리로 표현된 년도 00, 01, ..., 99
%Y 전체 년도 1999, 2000, ..., 2019
%H 0으로 패딩된 24시간 00, 01, ..., 23
%I 0으로 패딩된 12시간 01, 02, ..., 12
%p 오전 오후 표현 AM / PM (en_US)
am, pm (de_DE)
%M 0으로 패딩된 분 00, 01, ..., 59
%S 0으로 패딩된 초 00, 01, ..., 59
%f 0으로 패딩된 마이크로 초 000000, 000001, ..., 999999
%z UTC 기준 +HHMM, -HHMM 오프셋 +0000, -0400, +1130
%Z 타임존 이름 UTC, EST, CST
%j 오늘이 이번년도에 몇 번째 날인지 (0으로 패딩) 001, 002, ..., 366
%U 이번주가 이번년도의 몇 번째 주인지(0으로 패딩)
이번 년도의 첫 번째 일요일이 00번째 주로 표현
00, 01, ..., 53
%W 이번주가 이번년도의 몇 번째 주인지(0으로 패딩)
이번 년도의 첫 번째 월요일이 00번째 주로 표현
00, 01, ..., 53
%c 로케일 기준 Date/Time 표현 Fri Nov 12 17:30:00 2019 (en_US)
%x 로케일 기준 Date 표현 01/11/2019 (en_US)
%X 로케일 기준 Time 표현 11:30:00 (en_US)
%% '%' 문자 표현 %

이 디렉티브를 이용해서 날짜 포맷을 지정하면 된다.


 

 

파이썬 스크립트 작성에 도움되는 글 모음

파이썬으로 프로그램을 작성할 때 도움되는 글들을 모아본다. Python 문법 Python 모듈

hbase.tistory.com

 

댓글