Как вы делаете обратное gmtime()
, где вы положили время + дату и получить количество секунд?
У меня есть строки вроде 'Jul 9, 2009 @ 20:02:58 UTC'
, и я хочу вернуть количество секунд между эпохой и 9 июля 2009 года.
Я пытался, time.strftime
но я не знаю, как правильно его использовать, или это правильная команда для использования.
Используйте модуль времени :
источник
time
используется эпоха Unix (1970).time.time()
значение НЕ зависит от местного часового пояса (если мы исключаем «правильные» часовые пояса и т. п.), например, если он возвращает время POSIX (как это происходит в большинстве систем), то это число секунд СИ с момента Эпоха (1970-01-01UTC) не считая високосных секунд. Это значение можно преобразовать в UTC (исключая високосные секунды), но это не UTC . @MarlonAbeykoon: мне нравится этот ответОбратите внимание , что
time.gmtime
карты временной метки0
для1970-1-1 00:00:00
.time.mktime(time.gmtime(0))
дает вам временную метку, сдвинутую на величину, зависящую от вашей локали, которая в общем случае может не быть 0.Обратный
time.gmtime
IScalendar.timegm
:источник
mktime()
сgmtime()
.mktime()
принимает ваше местное время, ноgmtime()
возвращает время UTC - ваш местный часовой пояс может и, скорее всего, будет другим. «отметка времени относительно вашей локали» не имеет смысла: отметка времени POSIX не зависит от вашей локали (местного часового пояса) - она одинакова во всем мире. «секунды с начала эпохи» в большинстве случаев являются метками времени POSIX (даже в Windows) - такие вещи, как «правильные» часовые пояса, использующие шкалу времени TAI, не распространены. См . Возвращает ли Python time.time () локальную или UTC временную метку?mktime()
недавно. Для некоторых веб-серверов python (например, Tornado), поскольку процесс продолжает работать, даже если я изменяю языковой стандарт системы,mktime()
вызываемый API веб-сервера по-прежнему использует старый часовой пояс для создания объекта времени. Я должен переключитьсяgmtime()
и вручную применить смещение gmt.Это должно отличаться от
int(time.time())
, но это безопасно использовать что-то вродеx % (60*60*24)
datetime - Основные типы даты и времени:
источник
источник
from datetime import datetime
сделать, либоdatetime.datetime.strptime
Есть два способа, в зависимости от вашей первоначальной отметки времени:
mktime()
иtimegm()
http://docs.python.org/library/time.html
источник