【问题标题】:Python dt.replace(tzinfo=) doesn't change timezomePython dt.replace(tzinfo=) 不会改变时区
【发布时间】:2015-03-19 13:07:39
【问题描述】:

收到有效时区时为什么不替换修改 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())

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

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

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

2000-04-25 12:57:00
None
None tzutc()

【问题讨论】:

标签: python python-2.7 datetime


【解决方案1】:

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

datetime.replace:

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

【讨论】:

  • datetime.replace(tzinfo= ) 仅适用于 UTC 时区,在许多其他情况下会失败。不要使用。
猜你喜欢
  • 2010-10-12
  • 2017-04-06
  • 2013-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
  • 2013-10-30
  • 2021-06-17
相关资源
最近更新 更多