time.time , как я только что сказал, документы работают в UTC (когда-то известное как «гринвичское» время, теперь «универсальная временная координата»). mktime , опять же, как сказано в своих документах, принимает в качестве аргумента
9-tuple [...] which expresses the time in local time, not UTC.
strptime
может работать в любом случае (но вы не предоставляете часовой пояс, поэтому он будет использовать местное время).
Итак, в целом, вы глубоко погружаетесь в путаницу с часовыми поясами; -).
Я рекомендую (как всегда) стандартизировать по UTC (в конце концов, местный часовой пояс вашего сервера может не совпадать с часовым поясом его пользователей), например с директивой %Z
в формате, который вы передаете strptime
, и соответствующим часовым поясом 'UTC'
(который гарантированно распознается на всех платформах) в соответствующей части анализируемой строки.