utctimetuple
-> calendar.timegm
-> utcfromtimestamp
образует круговую поездку:
import calendar
import datetime as DT
start = DT.datetime(2000, 1, 1, 0, 0, 0)
utc_tuple = start.utctimetuple()
utc_timestamp = calendar.timegm(utc_tuple)
startDifferent = DT.datetime.utcfromtimestamp(utc_timestamp)
print(startDifferent)
# 2000-01-01 00:00:00
timestamp
-> fromtimestamp
также туда-обратно:
asFloat = start.timestamp()
startDifferent = DT.datetime.fromtimestamp(asFloat)
print(startDifferent)
# 2000-01-01 00:00:00
Не существует utc
эквивалента timestamp
, который идет непосредственно от datetime.datetime
к отметке времени.Ближайшим эквивалентом является calendar.timegm(date.utctimetuple())
.
Это приблизительно показывает взаимосвязь между методами:
o------------o
| | DT.datetime.utcfromtimestamp (*)
| |<-----------------------------------o
| | |
| | DT.datetime.fromtimestamp |
| datetime |<-------------------------------o |
| | | |
| | .timestamp | |
| |----------------------------o | |
| | | | |
o------------o | | |
| ^ | | |
.timetuple | | | | |
.utctimetuple (*) | | DT.datetime(*tup[:6]) | | |
v | v | |
o------------o o------------o
| |-- calendar.timegm (*) -->| |
| | | |
| |---------- time.mktime -->| |
| timetuple | | timestamp |
| |<-- time.localtime -------| |
| | | |
| |<-- time.gmtime (*)-------| |
o------------o o------------o
(*) Интерпретирует свой ввод как в UTC и возвращает результат, который долженинтерпретироваться как UTC.