在python中无法解决TZ问题

2024-09-29 21:40:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白python是如何计算时间的。在我看来前后矛盾。在

我的服务器时间是:

admin@httstools ~ $ date
Fri Dec 21 17:00:51 PST 2018

在python解释器中,我得到了预期的结果(即2018-12-21):

^{pr2}$

但如果我搞砸了时区,事情就会变得一团糟:

>>> time.tzname[time.localtime().tm_isdst]
'PST'

PST是正确的时区。但是,如果我将环境设置为该TZ,然后再次运行上一个命令,则会得到一个不同的日期,这显然是不正确的:

>>> os.environ['TZ'] = time.tzname[time.localtime().tm_isdst]
>>> str(datetime.date.today())
'2018-12-22'
>>>

预期结果将是2018年12月21日,TZ变量设置为“PST”。在

接下来,我可以在python中运行什么命令来始终根据我的位置返回正确的日期/时间。在


Tags: 命令服务器dateadmintime时间dectz
1条回答
网友
1楼 · 发布于 2024-09-29 21:40:12

下面是我对正在发生的事情的猜测(我现在没有Linux系统可以测试)。在

如果您检查一下TZ环境变量,您会发现它实际上应该是语法“America/Pacific”而不是“PST”(PST只是用于打印目的的缩写)。当一个无效的值通过TZ环境变量传递时,我猜Python会返回到UTC作为一个正常的默认值。在

太平洋标准时间下午5:00的UTC时间恰好是第二天的午夜,这就是为什么您得到了不同的日期。在

相关问题 更多 >

    热门问题