Programming

Python에서 UTC 시간을 얻는 방법은 무엇입니까?

procodes 2020. 8. 29. 21:42
반응형

Python에서 UTC 시간을 얻는 방법은 무엇입니까?


StackExchange에서 솔루션을 검색했지만 필요한 것은 아무것도 없습니다. JavaScript에서는 1970 년 1 월 1 일 이후 UTC 시간을 계산하기 위해 다음을 사용하고 있습니다.

function UtcNow() {
    var now = new Date();
    var utc = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), now.getUTCHours(), now.getUTCMinutes(), now.getUTCSeconds(), now.getUTCMilliseconds());
    return utc;
}

동등한 Python 코드는 무엇입니까?


datetime.utcnow () 사용하는 다음 코드를 시도하십시오 .

from datetime import datetime
datetime.utcnow()

두 날짜 사이에 소요 된 시간을 계산해야 할 때 필요한 것은 종료 날짜와 시작 날짜를 빼는 것뿐입니다. 이러한 뺄셈의 결과는 timedelta 객체입니다.

파이썬 문서에서 :

class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])

이것은 기본적으로 정의에 언급 된 모든 필드 (일, 초, 마이크로 초, 밀리 초, 분, 시간, 주)를 가져올 수 있음을 의미합니다. 또한 timedelta 인스턴스에는 다음과 같은 total_seconds () 메서드가 있습니다.

기간에 포함 된 총 초 수를 반환합니다. (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 * 6) / 10 * 6 (true division이 활성화 된 상태에서 계산 됨)에 해당합니다.


원본에 가장 가까운 형식 :

import datetime

def UtcNow():
    now = datetime.datetime.utcnow()
    return now

네이티브 Python datetime이 아닌 1970-01-01의 초 수를 알아야하는 경우 대신 다음을 사용하세요.

return (now - datetime.datetime(1970, 1, 1)).total_seconds()

파이썬은 자바 스크립트에서 사용했던 것과 상충되는 명명 규칙을 가지고 있습니다 . PEP 8을 참조하십시오 . 또한 단순히 다른 함수의 결과를 반환하는 함수는 다소 어리 석습니다. 더 쉽게 액세스 할 수 있도록하는 문제라면 단순히 할당하여 함수의 다른 이름을 만들 수 있습니다. 위의 첫 번째 예는 다음으로 대체 될 수 있습니다.

utc_now = datetime.datetime.utcnow

import datetime
import pytz

# datetime object with timezone awareness:
datetime.datetime.now(tz=pytz.utc)

# seconds from epoch:
datetime.datetime.now(tz=pytz.utc).timestamp() 

# ms from epoch:
int(datetime.datetime.now(tz=pytz.utc).timestamp() * 1000) 

datetime.datetime에서 strftime 메소드를 사용하여 이미 타임 스탬프로 내보낼 수 있습니다. 함수 예를 따르십시오.

import datetime
def UtcNow():
    now = datetime.datetime.utcnow()
    return int(now.strftime("%s"))

마이크로 초를 원하는 경우 내보내기 문자열을 변경하고 다음과 같이 부동으로 캐스트해야합니다. return float(now.strftime("%s.%f"))


람다 식을 사용하는 Python 3에서 시도해보십시오.

from datetime import datetime
utc_now = lambda : datetime.utcnow()

정상적으로 함수를 호출하십시오.

print(utc_now())

외부 종속성이없는 시간대 인식 :

from datetime import datetime, timezone

def utc_now():
    return datetime.utcnow().replace(tzinfo=timezone.utc)

참고 URL : https://stackoverflow.com/questions/15940280/how-to-get-utc-time-in-python

반응형