sourcecode

Python에서는 epoch 이후 초를 datetime 개체로 변환하려면 어떻게 해야 합니까?

copyscript 2022. 10. 27. 22:21
반응형

Python에서는 epoch 이후 초를 datetime 개체로 변환하려면 어떻게 해야 합니까?

time모듈은 에폭 이후 초수를 사용하여 초기화할 수 있습니다.

>>> import time
>>> t1=time.gmtime(1284286794)
>>> t1
time.struct_time(tm_year=2010, tm_mon=9, tm_mday=12, tm_hour=10, tm_min=19, 
                 tm_sec=54, tm_wday=6, tm_yday=255, tm_isdst=0)

를 초기화할 수 있는 우아한 방법이 있을까요?datetime.datetime같은 방법으로 오브젝트?

datetime.datetime.fromtimestamp 타임 존을 알고 있으면, 같은 출력을 얻을 수 있습니다.time.gmtime

>>> datetime.datetime.fromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 11, 19, 54)

또는

>>> datetime.datetime.utcfromtimestamp(1284286794)
datetime.datetime(2010, 9, 12, 10, 19, 54)

epoch 이후 ~까지의 시간(초):

>>> ts_epoch = 1362301382
>>> ts = datetime.datetime.fromtimestamp(ts_epoch).strftime('%Y-%m-%d %H:%M:%S')
>>> ts
'2013-03-03 01:03:02'

epoch 이후 초 단위로 표준 시간대 대응 datetime 개체를 가져오는 권장 방법은 다음과 같습니다.

Python 3:

from datetime import datetime, timezone
datetime.fromtimestamp(timestamp, timezone.utc)

Python 2, 사용:

from datetime import datetime
import pytz
datetime.fromtimestamp(timestamp, pytz.utc)

datetime.datetime 에 주의해 주세요.fromtimestamp(timestamp) 및 .utcfromtimestamp(timestamp)는 1970년 1월 1일 이전 날짜에 대해 Windows에서 실패하지만 부정적인 Unix 타임스탬프는 Unix 기반 플랫폼에서 작동하는 것으로 보입니다.의사는 다음과 같이 말합니다.

타임스탬프가 플랫폼 C gmtime() 함수로 지원되는 값의 범위를 벗어나면 ValueError가 발생할 수 있습니다. 1970년부터 2038년까지로 제한되는 것이 일반적입니다.

제1646728호」도 참조해 주세요.

ISO 8601 준거를 원하는 사용자에게는 다른 솔루션에는 다음과 같은 기능이 없습니다.T구분 기호 또는 시간 오프셋(Meistro의 답변 제외):

from datetime import datetime, timezone
result = datetime.fromtimestamp(1463288494, timezone.utc).isoformat('T', 'microseconds')
print(result) # 2016-05-15T05:01:34.000000+00:00

주의: 저는fromtimestamp왜냐하면 만약 내가utcfromtimestamp체인으로 접속해야 합니다..astimezone(...)오프셋을 얻기 위해서요

만약 당신이 멀리 가고 싶지 않다면microsecondsisoformat() 메서드를 사용하여 다른 단위를 선택할 수 있습니다.

언급URL : https://stackoverflow.com/questions/3694487/in-python-how-do-you-convert-seconds-since-epoch-to-a-datetime-object

반응형