Как добавить секунды (мили, нано, микро) в формат отметок времени T / Z (ISO 8601)? - PullRequest
0 голосов
/ 06 июля 2019

Обычно у меня есть целый фрейм данных с отметкой времени в следующем формате: 2018-01-17T05: 00: 00.000000Z

И я хочу добавить к нему разные секунды (иногда добавляю 1 секунду,иногда добавляют 1 микросекунду и т. д.).

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

С 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)
0 голосов
/ 06 июля 2019

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

Что касается наносекунд, вы можете найти информацию здесь .

В случае, если у вас естькак 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...