it-source

Unix 타임스탬프 형식으로 현재 GMT 시간을 얻는 가장 쉬운 방법은 무엇입니까?

criticalcode 2022. 10. 21. 22:53
반응형

Unix 타임스탬프 형식으로 현재 GMT 시간을 얻는 가장 쉬운 방법은 무엇입니까?

Python은 다양한 패키지를 제공합니다(datetime,time,calendar)는 시간을 처리하기 위해 여기서 볼 수 있습니다.나는 현재 GMT 시간을 얻기 위해 다음을 사용하여 큰 실수를 했다.time.mktime(datetime.datetime.utcnow().timetuple())

Unix 타임스탬프에서 현재 GMT 시간을 얻는 간단한 방법은 무엇입니까?

time.time()을 사용하여 에폭 이후 초 단위로 타임스탬프를 가져옵니다.

import time

time.time()

출력:

1369550494.884832

대부분의 플랫폼에서 표준 CPython 구현의 경우 UTC 값이 반환됩니다.

import time

int(time.time()) 

출력:

1521462189

이게 도움이 되나요?

from datetime import datetime
import calendar

d = datetime.utcnow()
unixtime = calendar.timegm(d.utctimetuple())
print unixtime

Python UTC datetime 개체를 UNIX 타임스탬프로 변환하는 방법

python2python3

시간 모듈을 사용하는 것이 좋습니다.

import time
int(time.time())

1573708436

datetime 모듈도 사용할 수 있지만 strftime "%s")를 사용하는 경우 strftime은 시간을 현지 시간으로 변환합니다.

python2

from datetime import datetime
datetime.utcnow().strftime('%s')

python3

from datetime import datetime
datetime.utcnow().timestamp()

마이크로초의 10진수 분해능을 갖춘 Python 3초:

from datetime import datetime
print(datetime.now().timestamp())

Python 3 정수 초:

print(int(datetime.now().timestamp()))

경고datetime.utcnow().timestamp()!

datetime.utcnow()는 타임존이 아닌 오브젝트입니다.참조: https://docs.python.org/3/library/datetime.html#aware-and-naive-objects

새벽 1시(UTC)와 같은 경우:

from datetime import timezone
print(datetime(1970,1,1,1,0,tzinfo=timezone.utc).timestamp())

또는

print(datetime.fromisoformat('1970-01-01T01:00:00+00:00').timestamp())

를 삭제하면tzinfo=timezone.utc또는+00:00현재 현지 시간에 따라 결과가 표시됩니다.예: 1970년 1월 1일 오전 1시(적법한 시간대일 수 있음) 예를 들어, 태어난 순간의 타임 스탬프를 사용하고 싶은 경우는, 태어난 시간대를 사용할 필요가 있습니다.단, 타임스탬프는datetime.utcnow().timestamp()는 현지시간으로 현재 순간도 UTC도 아닙니다.예를 들어, 지금 GMT-7:00에 있는데datetime.utcnow().timestamp()7시간 후의 타임스탬프!

또는 단순히 datetime 표준 모듈을 사용하는 것만으로

In [2]: from datetime import timezone, datetime
   ...: int(datetime.now(tz=timezone.utc).timestamp() * 1000)
   ...: 
Out[2]: 1514901741720

원하는 해상도에 따라 잘라내거나 곱할 수 있습니다.이 예에서는 millis를 출력하고 있습니다.

적절한 Unix 타임스탬프(초단위)를 필요로 하는 경우는,* 1000

적어도 python3에서는 다음과 같이 동작합니다.

>>> datetime.strftime(datetime.utcnow(), "%s")
'1587503279'

저는 이 방법을 좋아합니다.

import datetime, time

dts = datetime.datetime.utcnow()
epochtime = round(time.mktime(dts.timetuple()) + dts.microsecond/1e6)

여기에 게재되어 있는 그 외의 방법에서는, 모든 플랫폼에서 UTC 를 제공하는 것은 보증되지 않습니다.또는 초단위로만 보고됩니다.풀 해상도를 원하는 경우 마이크로초 단위로 작동합니다.

from datetime import datetime as dt
dt.utcnow().strftime("%s")

출력:

1544524990
#First Example:
from datetime import datetime, timezone    
timstamp1 =int(datetime.now(tz=timezone.utc).timestamp() * 1000)
print(timstamp1)

출력: 1572878043380

#second example:
import time
timstamp2 =int(time.time())
print(timstamp2)

출력: 1572878043

  • 여기에서는 첫 번째 예시가 두 번째 예보다 더 정확한 시간을 주는 것을 볼 수 있습니다.
  • 여기 첫 번째 걸 쓰고 있어요.

언급URL : https://stackoverflow.com/questions/16755394/what-is-the-easiest-way-to-get-current-gmt-time-in-unix-timestamp-format

반응형