ProgramingTip

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

bestdevel 2020. 11. 30. 19:24
반응형

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


루비 펼쳐를 사용하여 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'
>>> 

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


사용 :datetime.datetime.fromtimestamp

>>> 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'

%f지시문은 지원하고 에서는 지원하지 않습니다 .datetime.datetime.strftimetime.strftime

%, :를 사용하는 대안 업데이트str.format

>>> 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'

gmtime은 초를 기대하는 밀리 초입니다. 1000으로 나누면됩니다.

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

참고 URL : https://stackoverflow.com/questions/21787496/converting-epoch-time-with-milliseconds-to-datetime

반응형