操作 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()
使用 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()