【发布时间】:2011-05-02 01:50:53
【问题描述】:
来自http://docs.python.org/library/time.html:
time.mktime(t): 这是 localtime() 的反函数。它的论点是 struct_time 或完整的 9 元组(因为 需要 dst 标志;使用 -1 作为 dst 如果未知,则标记)表示 当地时间的时间,而不是 UTC。它 返回一个浮点数,对于 与时间()的兼容性。如果 输入值不能表示为 有效时间,OverflowError 或 将引发 ValueError (其中 取决于是否无效值 被 Python 或底层捕获 C 库)。最早的日期 它可以产生时间的是 平台相关。
这表示您需要在本地时间指定时间元组,而不是 UTC。但是,我想用 UTC 指定;我不想在盒子上使用本地时区。
有什么方法可以从日期时间转到时间戳,其中时间被视为 UTC?当我在时间戳之间进行转换时,我希望能够将所有内容保持在标准化的 UTC 形式(日期时间对象)中。
我希望能够做这样的事情并让 x 和 y 相同:
y = datetime.datetime.utcfromtimestamp(time.mktime(x.timetuple()))
x = dateutil.parser.parse('Wed, 27 Oct 2010 22:17:00 GMT')
stamp = time.mktime(x.timetuple())
y = datetime.datetime.utcfromtimestamp(stamp)
x
datetime.datetime(2010, 10, 27, 22, 17, tzinfo=tzutc())
y
datetime.datetime(2010, 10, 28, 6, 17)
【问题讨论】: