programing

Python의 time.time()은 로컬 타임스탬프 또는 UTC 타임스탬프를 반환합니까?

javaba 2023. 1. 19. 21:14
반응형

Python의 time.time()은 로컬 타임스탬프 또는 UTC 타임스탬프를 반환합니까?

time.time()UTC에 의한 것입니다.

함수는 에폭 이후의 초수를 플로트로 반환합니다."에폭"은 UTC에서 1970년 1월 1일의 시작으로 정의됩니다.따라서 이 에폭은 UTC로 정의되며 전지구적 시점을 설정합니다.지구상의 어디에 있든 '세컨드 패스 에폭(seconds past epoch)'이다.time.time()는 같은 는 같은 순간에 같은 값을 반환합니다.

다음은 컴퓨터에서 실행한 샘플 출력입니다. 문자열로도 변환합니다.

>>> import time
>>> ts = time.time()
>>> ts
1355563265.81
>>> import datetime
>>> datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
'2012-12-15 01:21:05'
>>>

ts초 단위로 입니다., 사람이 수 있는 했습니다.datetime★★★★★★★★★★★★★★★★★★.

이는 텍스트 파일에서 사용할 수 있는 타임스탬프의 텍스트 형식을 위한 것입니다.(과거에는 질문의 제목이 달랐기 때문에, 이 답변의 서론을 변경해, 어떻게 해석할 수 있는지를 명확하게 했습니다.[2016-01-14]

는, 「」를 할 수 ..now() ★★★★★★★★★★★★★★★★★」.utcnow()datetime.datetime:

>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000

nowutcnow예상대로 --그렇지 않으면, 같은 방법으로 동작합니다.

>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000

타임스탬프를 명시적으로 문자열에 렌더링할 수 있습니다.

>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'

또는 타임스탬프 형식을 원하는 대로 지정할 수도 있습니다.

>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'

형식을 사용하는 는, ISO 「」를 합니다..isoformat()오젝트 젝서오 :

>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'

이러한 값을 변환 없이 계산 및 인쇄에 사용할 수 있습니다.

>>> ts = datetime.datetime.now()
>>> tf = datetime.datetime.now()
>>> te = tf - ts
>>> print ts
2015-04-21 12:02:19.209915
>>> print tf
2015-04-21 12:02:30.449895
>>> print te
0:00:11.239980

#squiguy의 답변을 바탕으로 정확한 타임스탬프를 얻기 위해 float에서 캐스팅합니다.

>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318

적어도 그게 컨셉이야.

답은 둘 중 하나일 수도 있고 둘 다일 수도 있다.

  • 다: 둘:::time.time()Epoch 이후 경과한 대략적인 초수를 반환합니다.결과는 시간대에 따라 달라지지 않기 때문에 UTC도 아니고 현지시간도 아닙니다.다음은 "에폭 이후 세컨드"에 대한 POSIX 정의입니다.

  • 다: 둘 : : :time.time()는 시스템 클럭을 동기화할 필요가 없기 때문에 값을 반영합니다(단, 로컬타임존과는 무관합니다).컴퓨터마다 동시에 다른 결과를 얻을 수 있습니다.한편, 컴퓨터의 시각이 동기하고 있는 경우는, 타임 스탬프로부터 UTC 시각을 간단하게 취득할 수 있습니다(윤초를 무시하면).

    from datetime import datetime
    
    utc_dt = datetime.utcfromtimestamp(timestamp)
    

다양한 Python 버전에서 UTC 시간에서 타임스탬프를 가져오는 방법은 UTC에 따라 epoch 이후 초로 변환된 날짜를 얻는 방법을 참조하십시오.

datetime 라이브러리를 사용하여 로컬 타임스탬프를 가져오려면 Python 3.x

#wanted format: year-month-day hour:minute:seconds

from datetime import datetime

# get time now
dt = datetime.now()
# format it to a string
timeStamp = dt.strftime('%Y-%m-%d %H:%M:%S')

# print it to screen
print(timeStamp)

나는 결국 다음과 같이 결정했다.

>>> import time
>>> time.mktime(time.gmtime())
1509467455.0

특정 시간대에는 "에폭"과 같은 것은 없습니다.에폭은 특정 시점으로 잘 정의되어 있기 때문에 시간대를 변경하면 시간 자체도 변경됩니다.구체적으로는 이번에는Jan 1 1970 00:00:00 UTC.그렇게time.time()에폭 이후의 초수를 반환합니다.

timestamp는 항상 utc 단위의 시간입니다만,datetime.datetime.fromtimestamp이 타임스탬프에 대응하는 로컬타임존의 시간을 반환하기 때문에 결과는 로케일에 따라 달라집니다.

>>> import time, datetime

>>> time.time()
1564494136.0434234

>>> datetime.datetime.now()
datetime.datetime(2019, 7, 30, 16, 42, 3, 899179)
>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2019, 7, 30, 16, 43, 12, 4610)

멋진 도서관이 있다.arrow다른 행동을 보이는군요같은 경우 UTC 시간대를 포함한 시간 객체를 반환합니다.

>>> import arrow
>>> arrow.now()
<Arrow [2019-07-30T16:43:27.868760+03:00]>
>>> arrow.get(time.time())
<Arrow [2019-07-30T13:43:56.565342+00:00]>

time.time() unix 타임스탬프를 반환합니다.사용할 수 있다datetime로컬 시간 또는 UTC 시간을 가져옵니다.

import datetime

local_time = datetime.datetime.now()
print(local_time.strftime('%Y%m%d %H%M%S'))

utc_time = datetime.datetime.utcnow() 
print(utc_time.strftime('%Y%m%d %H%M%S'))

언급URL : https://stackoverflow.com/questions/13890935/does-pythons-time-time-return-the-local-or-utc-timestamp

반응형