IT 삽질기

python datetime <-> 문자열 변경하기 본문

개발/python

python datetime <-> 문자열 변경하기

화이팅빌런 2021. 8. 7. 23:36

이번 글에서는 python datetime.datetime에서 제공하는 strftime과 strptime을 활용해 datetime과 str타입간 변경 방법을 알아보자.

datetime import

먼저 strftime과 strptime을 사용하기 위해 python에서 datetime.datetime을 import하기 위해 아래의 구문을 사용한다.

from datetime import datetime

strftime

strftime는 datetime을 문자열로 바꿔주는 함수로 아래와 같이 사용할 수 있다.

from datetime import datetime
now = datetime.now()
# now = datetime.datetime(2021, 8, 7, 22, 54, 43, 632023)

datetime.strftime(now, '%Y%m%d')
# '20210807'

now.strftime('%Y%m%d')
# '20210807'

위의 예제를 살펴보자.

datetime.now()를 이용해 현재 datetime값을 가지고 왔고 그 값을 strftime를 이용해 str로 변경시켰다.

변경시키는 과정에서 '%Y%m%d'를 사용했는데 각각이 가지는 의미에 대해 정리해보자.

python공식 페이지에서 가지고 온 내용으로 정확한 내용은 참고자료에 있는 python 문서를 확인하기 바라며, 일부 내용은 제외하고 옮겨두었다.

지시자 의미
%a 요일 이름 축약 Sun, Mon ...
%A 요일 이름 전체 Sunday, Monday ...
%w 요일 이름 0~6
0 : 일요일 / 6 : 토요일
0 ~ 6
%d 월중 일을 0이 채워진 10진수로 01 ~ 31
%b 월 이름 축약 Jan, Feb ...
%B 월 이름 전체 January, February ...
%m 0이 채워진 월 01 ~ 12
%y 세기를 제외한 연도
2001 -> 01, 2021 -> 21
2001 -> 01, 2021 -> 21
00 ~ 99
%Y 전체 연도 0000 ~ 9999
%H 24시간제 시간 00 ~ 23
%I 12시간제 시간 00 ~ 11
%M 분 00 ~ 59 00 ~ 59
%S 초 00 ~ 59 00 ~ 59
%f microsec 000000 ~ 999999
%z HHMM 형태의 UTC 오프셋 +0000, -0400, ...
%Z 시간대 이름 UTC, GMT, ...
%j 연중 일 001 ~ 366

이제 앞서 사용했던 예제를 이해할 수 있을 것이다.

현재 datetime를 strftime를 이용해 str형식으로 변경했고, '%Y%m%d'를 이용해 20210807의 형식으로 변경했다.

형식만 맞춰준다면 다른 문자열과 결합하여 사용하는 것도 가능하다.

이렇게 strftime를 사용하면 원하는 datetime형식을 str형식으로 변경하는 것이 가능하다.

strptime

다음으로 strptime는 strftime과 반대로 문자열(str)을 datetime형식으로 바꿔주는 것으로 역시 동일한 방식으로 위에 있는 표와 같은 형식으로 사용하는 것이 가능하다. 사용 예를 살펴보자.

작성한 코드는 아래와 같다. 위에서 살펴본 strftime과 같이 현재시간을 이용해 str로 바꾸고 다시 datetime형식으로 변경하는 예제 코드이다.

from datetime import datetime
now = datetime.now()
a = datetime.strftime(now, '%Y%m%d %H:%M:%S')
b = datetime.strftime(now, '%Y%m%d')
datetime.strptime(a, '%Y%m%d %H:%M:%S')
datetime.strptime(b, '%Y%m%d')

실행 결과를 살펴보자.

strftime과 마찬가지로 지정자와 맞춰 사용하면 정상적으로 datetime형식으로 변경되는 것을 확인할 수 있고, 맨 마지막 예제에서 처럼 입력하지 않은 정보에 대해서는 0값으로 입력되게 된다.

 

 

참고자료

https://docs.python.org/ko/3/library/datetime.html#strftime-strptime-behavior

'개발 > python' 카테고리의 다른 글

python 정규표현식 사용하기(2)  (0) 2021.08.16
python 정규표현식 사용하기(1)  (0) 2021.08.15
windows에 jupyter설치하기  (0) 2021.08.05
windows에 python 설치  (0) 2021.08.04
python list 특정 index 값으로 정렬하기  (0) 2021.06.13
Comments