Python dt.replace(tzinfo=) 不会改变时区

Ale*_*sen 4 python datetime python-2.7

为什么在收到有效时区对象时不替换修改 tzinfo 对象?

我正在尝试将本地时间添加到未指定时区的时间戳中。

if raw_datetime.tzinfo is None:
    print(raw_datetime)
    print(raw_datetime.tzinfo)
    raw_datetime.replace(tzinfo=dateutil.tz.tzlocal())
    print(raw_datetime.tzinfo, dateutil.tz.tzutc())
Run Code Online (Sandbox Code Playgroud)

根据文档,我应该能够使用有效的日期时间更改 tzinfo 属性

https://docs.python.org/2/library/datetime.html#datetime.date.replace

但我显然做错了什么,因为 tzinfo 对象仍然是 None.

2000-04-25 12:57:00
None
None tzutc()
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 8

只是一个简单的疏忽,replace 不会修改调用对象,而是返回一个替换了值的新对象。

日期时间.替换:

返回具有相同值的日期,除了那些由指定的关键字参数赋予新值的参数。例如,如果 d == date(2002, 12, 31),则 d.replace(day=26) == date(2002, 12, 26)。

  • datetime.replace(tzinfo= ) 仅适用于 UTC 时区,并在许多其他情况下失败。不使用。 (3认同)