使用python确定时间戳是否在夏令时之下

Jim*_*ion 5 python datetime pytz dst

这不起作用:

t = os.path.getmtime(filename)
dTime = datetime.datetime.fromtimestamp(t)
justTime = dTime.timetuple()
if justTime.tm_isdst == 0 :
    tDelta = datetime.timedelta(hours=0)
else:
    tDelta = datetime.timedelta(hours=1)
Run Code Online (Sandbox Code Playgroud)

相反,条件总是等于 1,尽管某些时间戳在白天的节省时间内。

我正在尝试使 python 调用与基于 c 的调用的行为相匹配。

jfs*_*jfs 5

要查明给定的时间戳是否对应于本地时区的夏令时 (DST):

import os
import time

timestamp = os.path.getmtime(filename)
isdst = time.localtime(timestamp).tm_isdst > 0
Run Code Online (Sandbox Code Playgroud)

它可能会失败。要解决这些问题,您可以使用以下pytz模块对 tz 数据库进行便携式访问:

from datetime import datetime
import tzlocal  # $ pip install tzlocal

local_timezone = tzlocal.get_localzone() # get pytz tzinfo
isdst = bool(datetime.fromtimestamp(timestamp, local_timezone).dst())
Run Code Online (Sandbox Code Playgroud)

相关:使用 Python 找出当前时区是否处于夏令时