계산 - python today date



unixtime을 datetime 오브젝트로 변환하고 다시 반대로합니다(반대로 시간 변환 함수 쌍). (1)

이 동작이 일광 절약 시간과 관련되어 올바른지 확인하십시오. 이것을 피하는 가장 쉬운 방법은 일광 절약 시간제를 사용하지 않도록하는 것입니다. UTC가 여기에 가장 적합합니다.

datetime.datetime.utcfromtimestamp()calendar.timegm() 은 UTC 시간을 처리하며 정확한 반전입니다.

import calendar, datetime

# Convert a unix time u to a datetime object d, and vice versa
def dt(u): return datetime.datetime.utcfromtimestamp(u)
def ut(d): return calendar.timegm(d.timetuple())

다음은 datetime.datetime.fromtimestamp() 가 docs에서 일광 절약 시간 문제가있는 이유에 대한 설명입니다.

time.time() 의해 리턴 된 것과 같은 POSIX 시간 소인에 해당하는 지역 날짜 및 시간을 리턴하십시오. 선택적 인수 tz이 None이거나 지정되지 않은 경우 타임 스탬프는 플랫폼의 로컬 날짜 및 시간으로 변환되며 반환 된 datetime 객체는 순진합니다.

여기서 중요한 부분은 순진한 datetime.datetime 개체를 얻게된다는 것입니다. 즉, 개체의 일부로 시간대 (또는 일광 절약 시간) 정보가 없음을 의미합니다. 즉, 일광 절약 시간 롤백 중에있는 시간을 선택하는 경우 fromtimestamp() 사용할 때 여러 개의 고유 타임 스탬프가 동일한 datetime.datetime 객체에 매핑 될 수 있습니다.

>>> datetime.datetime.fromtimestamp(1004260000) 
datetime.datetime(2001, 10, 28, 1, 6, 40)
>>> datetime.datetime.fromtimestamp(1004256400)
datetime.datetime(2001, 10, 28, 1, 6, 40)

https://src-bin.com

저는 유닉스와 유닉스 시간 (1970-01-01 00:00:00 UTC)과 Python datetime 객체 사이를 앞뒤로 변환하는 dtut 함수를 작성하려고합니다.

dtut 이 적절한 반전이면이 코드는 동일한 타임 스탬프를 두 번 인쇄합니다.

import time, datetime

# Convert a unix time u to a datetime object d, and vice versa
def dt(u): return datetime.datetime.fromtimestamp(u)
def ut(d): return time.mktime(d.timetuple())

u = 1004260000
print u, "-->", ut(dt(u))

아아, 두 번째 시간 소인은 첫 번째 시간 소인보다 3600 초 (1 시간) 적습니다. 나는 이것이 아주 특별한 unixtimes 일 때만, 어쩌면 그 시간 동안 일광 절약 시간이 건너 뛴다 고 생각합니다. 그러나 dtut 을 쓰는 방법이 있습니까? 그래서 그들은 서로의 진정한 역입니다.

관련 질문 : matplotlib의 date2num 및 num2date 완벽한 반전 만들기





dst