【发布时间】:2020-04-15 10:16:21
【问题描述】:
我有一堆时间对象存储在数据库中,但它们都是天真的对象。他们存储的时间是在“JST”或“亚洲/东京”tz。我尝试使用
naive_time.replace(tzinfo = pytz.timezone('Asia/Tokyo'))
但这将它设置为 LMT+09:19:00 这是不正确的,它应该是 LMT+09:00:00。任何正确的建议。
编辑:
数据库将时间作为datatime.time 对象返回,tzinfo=None 就像datetime.time(1, 0)。我将其分配给 t 并尝试了
t.replace(tzinfo = pytz.timezone('Asia/Tokyo'))
给了
datetime.time(1, 0, tzinfo=<DstTzInfo 'Asia/Tokyo' LMT+9:19:00 STD>)
但“亚洲/东京”或 JST 比 LMT 提前 9 小时而不是 9 小时 19 分钟。
【问题讨论】:
-
欢迎来到 SO,您能否更新您的帖子以使您的问题可重现。目前我们只能推测会发生什么。请阅读 minimal reproducible example 以获取有关如何使您的帖子符合 SO 标准的更多见解。
-
不,它没有。我之前看到了那个答案,但没有帮助
-
我拥有的幼稚时间对象以这种格式存储值
datetime.time(1, 0)如果我这样做.replace(tzinfo = pytz.timezone('Asia/Tokyo'))然后它返回datetime.time(1, 0, tzinfo=<DstTzInfo 'Asia/Tokyo' LMT+9:19:00 STD>)这是不正确的。预期结果应该是datetime.time(1, 0, tzinfo=<DstTzInfo 'Asia/Tokyo' LMT+9:00:00 STD>) -
请您发布您的minimal reproducible example 的完整代码(包括导入和存储在您的数据库中的日期时间或时间对象)。
标签: python python-3.x datetime