Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 문자열과 DateTime 상호 변환하기: strptime과 str 완벽 가이드

Python은 날짜와 시간을 다루는 강력하고 다양한 기능을 제공합니다. 이 글에서는 적절한 형식의 문자열을 datetime 객체로 변환하는 방법과, 그 반대로 datetime 객체를 문자열로 변환하는 방법을 알아보겠습니다.

strptime() 함수로 문자열을 DateTime으로 변환하기

datetime 모듈의 strptime() 함수는 형식 지정자(format specifier)를 사용하여 문자열을 datetime 객체로 변환할 수 있습니다. 변환하려는 문자열의 구조에 맞는 형식 코드를 함께 전달하면 됩니다.

주요 형식 지정자

  • %B: 월의 전체 이름 (예: September)
  • %d: 일 (01~31)
  • %Y: 4자리 연도
  • %H:%M:%S: 시:분:초 (24시간 형식)
  • %p: AM/PM 표시

예제 코드

import datetime
dt_str = 'September 19 2019 21:02:23 PM'
# 주어진 날짜 시간 문자열
print("Given date time: \n", dt_str)
# 데이터 타입 확인
print("Data Type: ", type(dt_str))
# 형식 지정
dtformat = '%B %d %Y %H:%M:%S %p'
datetime_val = datetime.datetime.strptime(dt_str, dtformat)
print("After converting to date time: \n", datetime_val)
# 데이터 타입 확인
print("Data type: ", type(datetime_val))
# 다시 문자열로 변환
dtstr_new = str(datetime_val)
print("The string Date time ", dtstr_new)
print("Data type: ", type(dtstr_new))

실행 결과

Given date time:
September 19 2019 21:02:23 PM
Data Type:
<class 'str'>
After converting to date time:
2019-09-19 21:02:23
Data type:
<class 'datetime.datetime'>
The string Date time 2019-09-19 21:02:23
Data type:
<class 'str'>

위 결과에서 볼 수 있듯이, 문자열이 strptime()을 통해 datetime.datetimestr() 함수를 사용해 문자열로 되돌릴 수 있습니다.

str() 함수로 DateTime을 문자열로 변환하기

str() 함수는 인자로 받은 값을 문자열로 변환합니다. 여기서는 today() 함수로 현재 날짜와 시간을 가져온 뒤, 이를 str() 함수의 인자로 전달하여 문자열로 변환합니다.

예제 코드

import datetime
print("Date time data type: \n", datetime.datetime.today())
print("Data type: \n", type(datetime.datetime.today()))
dtstr = str(datetime.datetime.today())
print("String Date time:\n ", dtstr)
print("Data type: \n", type(dtstr))

실행 결과

Date time data type:
2020-05-18 11:09:40.986027
Data type:
<class 'datetime.datetime'>

String Date time:
2020-05-18 11:09:40.986027
Data type:
<class 'str'>

정리

문자열을 datetime으로 변환할 때는 datetime.strptime(문자열, 형식)을 사용하고, datetime을 문자열로 변환할 때는 str(datetime객체)를 사용하면 됩니다. 참고로 더 세밀한 형식 제어가 필요하다면 strftime() 메서드를 활용하는 것도 좋은 방법입니다. 이 두 가지 기능만 익혀두면 Python에서 날짜와 시간 데이터를 자유롭게 다룰 수 있습니다.