본문 바로가기
파이썬

파이썬 밀리 초가있는 epoch 시간을 datetime으로 변환

by º기록 2020. 12. 22.
반응형

루비 스크립트를 사용하여 iso 타임 스탬프를 epoch로 변환했으며 구문 분석하는 파일은 다음과 같은 타임 스탬프 구조를 가지고 있습니다.

2009-03-08T00:27:31.807

밀리 초를 유지하고 싶기 때문에 다음 루비 코드를 사용하여 epoch 시간으로 변환했습니다.

irb(main):010:0> DateTime.parse('2009-03-08T00:27:31.807').strftime("%Q")
=> "1236472051807"

하지만 파이썬에서는 다음을 시도했습니다.

import time 
time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1236472051807))

하지만 원래 날짜 시간을 되 돌리지 못합니다.

>>> time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(1236472051807))
'41152-03-29 02:50:07'
>>> 

내가 서식을 지정하는 방법과 관련이 있는지 궁금합니다.

 

해결 방법

 


>>> import datetime
>>> s = 1236472051807 / 1000.0
>>> datetime.datetime.fromtimestamp(s).strftime('%Y-%m-%d %H:%M:%S.%f')
'2009-03-08 09:27:31.807000'



>>> import time
>>> s, ms = divmod(1236472051807, 1000)  # (1236472051, 807)
>>> '%s.%03d' % (time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(s)), ms)
'2009-03-08 00:27:31.807'
>>> '{}.{:03d}'.format(time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(s)), ms)
'2009-03-08 00:27:31.807'

 

참조 페이지 https://stackoverflow.com/questions/21787496

 

 

반응형

댓글