Using python to determine if a timestamp is under daylight savings time
这不起作用:
1 2 3 4 5 6 7 | 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) |
相反,条件总是等于1,尽管有些时间戳在白天节省时间内。
我试图使python调用匹配基于c的调用的行为。
要确定给定时间戳是否与本地时区的夏令时(DST)相对应:
1 2 3 4 5 | import os import time timestamp = os.path.getmtime(filename) isdst = time.localtime(timestamp).tm_isdst > 0 |
它可能会失败。 要解决这些问题,您可以使用
1 2 3 4 5 | 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()) |
相关:使用Python查找当前是否在夏令时中的时区。
为什么你假设你的文件系统用时区写下时间戳?
在服务器上,您坚持使用没有DST的UTC。 在桌面上,您应该查看DST更改的最新时刻(打开或关闭),并相应地更正时间。 我不知道
请注意,在从DST过渡期间的某些时刻,一些本地时间值出现两次,并且无法判断在切换之前或之后(一小时内)是否发生了特定时间戳(例如,上午2:30)。