From http://docs.python.org/library/time.html http://docs.python.org/library/time.html:
时间.mktime(t):
这是 localtime() 的反函数。它的论据是
struct_time 或完整的 9 元组(因为
需要 dst 标志;使用-1作为目标
如果未知则标记),表示
本地时间,而不是 UTC 时间。它
返回一个浮点数,对于
与 time() 的兼容性。如果
输入值不能表示为
有效时间,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)