Это означает, что вы пытаетесь манипулировать тем, что имеет ссылку, но еще не инициализировано. Первое, что нужно сделать, это проверить каждый созданный экземпляр. Используйте контрольные точки, часы, проверяйте свои значения varibale. Следить за трассировкой стека и искать точные строки и столбцы, которые создают проблему
Похоже на формат даты и времени Excel, называемый последовательной датой . Быстрый и грязный способ его преобразования:
>>> import datetime
>>> serial = 43111.0
>>> seconds = (serial - 25569) * 86400.0
>>> datetime.datetime.utcfromtimestamp(seconds)
datetime.datetime(2018, 1, 11, 0, 0)
Попробуйте следующее:
from datetime import datetime
datetime.fromtimestamp(*your_timestamp_here*).strftime('%Y-%m-%d')
Итак, с небольшой математикой:
Если 43111 - 11 января 2018 года, то 0 - 30 декабря 1899 года. Python имеет datetime.date.fromordinal()
Возвращает дату, соответствующую прорептическому григорианскому порядку, где 1 января года 1 имеет порядковый номер 1. ЗначениеError возникает, если 1 & lt; = порядковый номер = date.max.toordinal (). Для любой даты d, date.fromordinal (d.toordinal ()) == d.
blockquote>Если вы используете это со смещением, у вас есть:
>>> dateoffset = 693594 >>> datetime.date.fromordinal(dateoffset + 43111) datetime.date(2018, 1, 11)
Надеюсь, что это поможет, даже если он не работает для поплавков.
import datetime, time
print datetime.datetime.fromtimestamp(time.time())
print datetime.datetime.fromtimestamp(43111.0)