[파이썬] 날짜와 시간의 문자열 파싱

파이썬은 날짜와 시간을 처리하는데 유용한 datetime 라이브러리를 제공합니다. 이 라이브러리를 사용하여 문자열로 표현된 날짜와 시간을 파싱하고, 다양한 형식으로 변환할 수 있습니다. 이번 글에서는 파이썬에서 문자열을 파싱하는 방법과 datetime 라이브러리의 기능을 알아보겠습니다.

1. 문자열을 datetime 객체로 변환하기

파이썬의 datetime.strptime() 메서드를 사용하면 문자열을 datetime 객체로 변환할 수 있습니다. 이 메서드는 다음과 같은 형식을 가집니다:

datetime.strptime(date_string, format)

date_string은 변환할 문자열이고, formatdate_string의 형식을 지정하는 문자열입니다. 형식 문자열은 특정 문자열 패턴을 지정하는 기호로 구성됩니다. 몇 가지 자주 사용되는 형식 문자를 살펴보겠습니다:

예를 들어, “2022-01-01”과 같은 형식의 문자열을 datetime 객체로 변환하려면 다음과 같이 작성할 수 있습니다:

from datetime import datetime

date_string = "2022-01-01"
format = "%Y-%m-%d"
parsed_date = datetime.strptime(date_string, format)

이제 parsed_date 변수에는 “2022-01-01”을 나타내는 datetime 객체가 저장됩니다.

2. datetime 객체를 문자열로 변환하기

datetime 객체를 문자열로 변환하는 가장 일반적인 방법은 datetime.strftime() 메서드를 사용하는 것입니다. 이 메서드는 datetime 객체를 지정된 형식의 문자열로 변환합니다. 예를 들어, datetime 객체를 “YYYY년 MM월 DD일 HH시 MM분”과 같은 형식의 문자열로 변환하려면 다음과 같이 작성할 수 있습니다:

from datetime import datetime

date = datetime(2022, 1, 1, 12, 0, 0)
format = "%Y년 %m월 %d일 %H시 %M분"
formatted_date = date.strftime(format)

formatted_date 변수에는 “2022년 01월 01일 12시 00분”과 같은 형식의 문자열이 저장됩니다.

3. 다른 형식의 문자열 파싱하기

만약 문자열의 형식이 고정적이지 않고 다른 형태일 경우에는 정규식(regular expression)을 사용하여 파싱할 수도 있습니다. 정규식은 특정 패턴을 지정하고 매칭 시키는 도구로, 파이썬에서 re 라이브러리를 사용하여 쉽게 구현할 수 있습니다.

예를 들어, “20220101”과 같은 형식의 문자열을 datetime 객체로 변환하려면 다음과 같이 정규식을 사용할 수 있습니다:

import re
from datetime import datetime

date_string = "20220101"
pattern = r"(\d{4})(\d{2})(\d{2})"
match = re.match(pattern, date_string)
year, month, day = match.groups()
parsed_date = datetime(int(year), int(month), int(day))

parsed_date 변수에는 “2022-01-01”을 나타내는 datetime 객체가 저장됩니다. 정규식을 사용하면 다양한 형식의 문자열을 파싱하는 데 유연성을 가질 수 있습니다.

결론

이번 글에서는 파이썬에서 문자열로 표현된 날짜와 시간을 파싱하는 방법을 살펴보았습니다. datetime.strptime() 메서드를 사용하여 문자열을 datetime 객체로 변환하고, datetime.strftime() 메서드를 사용하여 datetime 객체를 문자열로 변환할 수 있습니다. 또한, 정규식을 사용하여 다른 형식의 문자열도 파싱할 수 있다는 것을 알게 되었습니다. 이러한 기능들을 응용하여 다양한 날짜와 시간 관련 작업을 보다 간편하게 처리할 수 있을 것입니다.