操作 ISO 8601 日期时间字符串

manipulate ISO 8601 datetime strings

使用 python 和 Google 的 API ,我正在尝试创建持续时间为一小时的事件。为此,我需要使用 ISO 8601 格式设置开始日期时间和结束日期时间,例如:2017-01-25T06:30:00.000+0000.

我将如何处理上述字符串并添加一个小时,例如 2017-01-25T07:30:00.000+0000。我试图剖析字符串,将字符转换为 ints/floats 但这不起作用(去掉“0”)。

我还应该说这个 dateTime 可以是任何值,例如有时 2017-01-25T21:15:00.000+0000。在每个实例中,我只需要能够添加一个小时,以便创建一个持续一小时的事件。作为一个额外的考虑,我将如何处理从 2017-01-25T23:30:00.000+0000 开始的事件,因为这些事件会延续到第二天。

也许有更简单的方法来做到这一点?非常感谢任何指导。

不要试图直接弄乱 ISO-formatted 字符串, 出错。

  • 用 python-dateutil (pip install python-dateutil)
  • 解析字符串
  • 它为您提供原生 python 日期时间
  • 使用 timedelta 将日期时间加一小时
  • 将结果重新格式化为 ISO

```

from dateutil.parser import parse
from datetime import timedelta

d_str = "2017-01-25T06:30:00.000+0000"
d = parse(d_str)
d2 = d + timedelta(seconds=3600)
result = d2.isoformat()