【发布时间】:2011-06-25 20:57:19
【问题描述】:
需要明确的是,这是 python 2.6,我使用的是 pytz。
这适用于仅处理美国时区的应用程序,我需要能够锚定日期(今天),并仅在 PST 晚上 8 点和晚上 11 点获得 unix 时间戳(纪元时间)。
这快把我逼疯了。
> pacific = pytz.timezone("US/Pacific")
> datetime(2011,2,11,20,0,0,0,pacific)
datetime.datetime(2011, 2, 11, 20, 0, tzinfo=<DstTzInfo 'US/Pacific' PST-1 day, 16:00:0 STD>)
> datetime(2011,2,11,20,0,0,0,pacific).strftime("%s")
'1297454400'
zsh> date -d '@1297454400'
Fri Feb 11 12:00:00 PST 2011
所以,即使我设置了一个时区,并使用该时区创建日期时间,它仍然将其创建为 UTC,然后进行转换。这是一个更大的问题,因为当我尝试进行计算时,UTC 将提前一天。
是否有一种简单(或至少合理)的方法可以为今天太平洋标准时间晚上 8 点生成时间戳?
(需要明确的是,我确实理解在大多数情况下使用 UTC 的价值,例如数据库时间戳或一般存储。这不是其中一种情况,我特别需要在 PST 的晚上使用时间戳,而 UTC 应该不必进入。)
【问题讨论】:
-
这里有什么问题 - 您的结束日期是 2011 年 2 月 11 日星期五 12:00:00 PST 2011 开始日期是 2 月 11 日?
-
问题是我正在尝试为太平洋标准时间晚上 8 点创建一个日期时间,它正在为世界标准时间晚上 8 点创建它并将其打印为中午。我真的只想为“8PM PST TODAY”创建一个对象并生成一个 unix 时间戳,而无需进行大量 UTC 操作。