如何在T / Z(ISO 8601)时间戳格式中添加秒(微,纳米,微)?

时间:2019-07-05 22:08:10

标签: python datetime

基本上,我有一个带有以下格式的时间戳的完整数据帧: 2018-01-17T05:00:00.000000Z

我希望在上面加上不同的秒数(有时增加1秒,有时增加1微秒,等等)。

2 个答案:

答案 0 :(得分:0)

python datetime允许您使用毫秒和微秒。

>>> from datetime import datetime,timedelta
>>> dt = datetime.now()
>>> print(dt)
2019-07-05 17:21:49.523664
>>> dt1 = dt + timedelta(microseconds = 1,milliseconds = 1)
>>> print(dt1)
2019-07-05 17:21:49.524665

关于纳秒级,您可以找到信息here

如果您将其作为string,则必须将其转换为datetime

>>> from datetime import datetime,timedelta
>>> import dateutil.parser
>>> date = dateutil.parser.parse("2018-01-17T05:00:00.000000Z")
>>> print(date)
2018-01-17 05:00:00+00:00
>>> dt1 = date + timedelta(microseconds = 1,milliseconds = 1)
>>> print(dt1)
2018-01-17 05:00:00.001001+00:00

如果您要求输入日期+00:00的最后部分,则可以在该时区中将其删除,如下所示:

>>> dt1 = dt1.replace(tzinfo=None)
>>> print(dt1)
2018-01-17 05:00:00.001001

答案 1 :(得分:0)

使用Python 3.7,您可以使用datetime.fromisoformat

import datetime
value = datetime.datetime.fromisoformat(str)
value += datetime.timedelta(seconds=1)

对于较旧的Python版本,您可以使用:

import datetime    
value = datetime.datetime.strptime(str, "%Y-%m-%dT%H:%M:%S.%fZ")
value += datetime.timedelta(seconds=1)