gpt4 book ai didi

python - 如果时区不是无,日期时间 "fromtimestamp()"将忽略继承

转载 作者:行者123 更新时间:2023-11-28 18:05:52 27 4
gpt4 key购买 nike

我创建了一个继承自 datetime.datetime 的类.

使用类方法创建新实例时 fromtimestamp它似乎有效,除非 如果我提供一个timezone 对象。在这种情况下,返回的对象是基本类型 datetime

import time
from datetime import datetime, timezone

class MyDatetime(datetime):
pass

MyDatetime.fromtimestamp(time.time())
# MyDatetime(2018, 11, 30, 18, 8, 36, 418105)
# <class '__main__.MyDatetime'>

MyDatetime.fromtimestamp(time.time(), tz=timezone.utc)
# datetime.datetime(2018, 11, 30, 17, 8, 50, 667385, tzinfo=datetime.timezone.utc)
# <class 'datetime.datetime'>

这似乎令人惊讶。我在文档中没有看到任何关于这种奇怪行为的提及,是我遗漏了什么还是 Python 错误?

最佳答案

Cross Posting from Python Bug Tracker

这是在设置时区时执行日期算术运算的副作用。

  • 在将 tz 信息传递给 datetime 时,它​​会调用 tz.fromutc()
  • 后跟日期时间算法 here
  • 最终导致构建一个新的日期时间对象 here

我不确定这是否是预期的行为

关于python - 如果时区不是无,日期时间 "fromtimestamp()"将忽略继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53561996/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com