【发布时间】:2014-05-17 09:35:14
【问题描述】:
我有一个从数据库中获取的日期时间,这个日期时间是 UTC 日期时间。但是当我从数据库中提取它时,它不知道时区。我需要做的是将这个日期时间转换为另一个函数的“从纪元开始的秒数”时间。这样做的问题是,系统的时间是 PST,由于特定原因我无法更改它。
所以,我想做的是,从数据库中获取这个日期时间,并告诉 python 这个日期时间是 UTC 日期时间。我所做的每一种方式都会导致由于时区转换而失去时间或获得时间。同样,不尝试转换时间,只是尝试指定它是 UTC。
如果有人能提供帮助,那就太好了。
谢谢!
例子
假设 database_function() 返回的日期时间数据类型为 '2013-06-01 01:06:18'
datetime = database_function()
epoch = datetime.strftime('%s')
pytz.utc.localize(database_function()).datetime.strftime('%s')
datetime.replace(tzinfo=pytz.utc).datetime.strftime('%s')
这两个都返回 1370077578 的纪元时间戳 但是,它应该返回一个时间戳为 1370048778 每个http://www.epochconverter.com/ 请记住,此时间戳是 UTC 时间戳
【问题讨论】:
-
我尝试按照那里的建议进行操作,但它最终转换了日期时间,使它比原来晚了 8 小时(认为我给它的时间是一个正在转换为 UTC 的 PST 时间)同样,不要试图隐藏一个日期时间,而是试图指定日期时间是什么,所以我在使用它时得到了正确的“从纪元开始的秒数”时间。
-
那个网站似乎有问题 - 转换
2013-06-01 01:06:18时,我得到1370045178 -
其他阅读本文的人:
datetime == datetime.datetime(2013, 6, 1, 1, 6, 18)。 @OP:不要在模块之后命名你的变量!