Я анализирую некоторые данные, которые имеют временную метку даты и времени високосной секунды 2012-06-30T23:59:60.209215
. Я использовал следующий код для анализа этой строки и преобразования в объект даты и времени:
nofrag, frag = t.split('.')
nofrag_dt = datetime.datetime.strptime(nofrag, "%Y-%m-%dT%H:%M:%S")
dt = nofrag_dt.replace(microsecond=int(frag))
Документация Python утверждает, что это не должно быть проблемой, поскольку %S
принимает [0, 61]
. Но я получаю эту ошибку с указанной выше отметкой времени
nofrag_dt = datetime.datetime.strptime(nofrag, "%Y-%m-%dT%H:%M:%S")
ValueError: second must be in 0..59
Спасибо
time.strptime
и работает нормально; проблема в том, что если секунды равны › 59, их нельзя преобразовать обратно вdatetime.datetime
. - person Wooble   schedule 09.01.2014int(frag)
может возвращать неправильное количество микросекунд, например,.123
должно соответствовать123000
микросекундам, а не123
. - person jfs   schedule 11.03.2015