[파이썬] 이메일 시간(Date) 타입 다루기

파이썬에서 email.message_from_bytes(데이터)로 획득한 메시지의 시간을 다루는 방법을 알아보자. message_from_bytes로 메일 객체를 msg에 저장했다고 가정한다.

우선 시간은 msg['Date']에 들어있다. 늘 그렇듯이 RFC 형식에 맞춰진 필드 정보지만 바로 datetime으로 바꾸기는 쉽지가 않다. 이때 쓸 수 있는 함수들이 email.utils에 있다. 바로 parsedate_tz와 mktime_tz다. 조합해서 만들어보면 msg 객체의 Date를 안전하게 datetime으로 변환하는 방법은 다음과 같다.

from email.utils import parsedate_tz, mktime_tz
timestamp = mktime_tz(parsedate_tz(msg['Date']))

이렇게 획득한 타임스탬프 갚은 datetime의 fromtimestamp로 변환해서 사용하면 된다.