从http://docs.python.org/library/time.html:
time.mktime(t): 这是localtime()的反函数。它的参数是struct_time 或完整的9元组(因为需要dst标志;如果不知道,则将-1用作dst标志),其中表达了本地时间而不是UTC时间。 它返回一个浮点数,以与time()兼容。 如果输入值无法表示为有效时间,则引发OverflowError或ValueError(取决于Python还是底层C库捕获无效值)。 它能够生成时间的最早日期取决于平台。
这意味着您需要在本地时间而不是UTC时间中指定时间元组。但是我想要在UTC时间中进行指定;我不想在计算机上使用本地时区。
有没有办法将datetime转换为时间戳,并将其视为UTC时间? 我想在转换为和从时间戳中保持所有内容处于标准化的UTC格式(datetime对象)。
我想做到像这样的事情,并使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)