Преобразование плавающих значений в datetime [duplicate]

Это означает, что вы пытаетесь манипулировать тем, что имеет ссылку, но еще не инициализировано. Первое, что нужно сделать, это проверить каждый созданный экземпляр. Используйте контрольные точки, часы, проверяйте свои значения varibale. Следить за трассировкой стека и искать точные строки и столбцы, которые создают проблему

12
задан Pravin 15 July 2011 в 12:16
поделиться

4 ответа

Похоже на формат даты и времени Excel, называемый последовательной датой . Быстрый и грязный способ его преобразования:

>>> import datetime
>>> serial = 43111.0
>>> seconds = (serial - 25569) * 86400.0
>>> datetime.datetime.utcfromtimestamp(seconds)
datetime.datetime(2018, 1, 11, 0, 0)
21
ответ дан Community 31 August 2018 в 22:06
поделиться

Попробуйте следующее:

from datetime import datetime

datetime.fromtimestamp(*your_timestamp_here*).strftime('%Y-%m-%d')
4
ответ дан fresheed 31 August 2018 в 22:06
поделиться

Итак, с небольшой математикой:

Если 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.

Если вы используете это со смещением, у вас есть:

>>> dateoffset = 693594
>>> datetime.date.fromordinal(dateoffset + 43111)
datetime.date(2018, 1, 11)

Надеюсь, что это поможет, даже если он не работает для поплавков.

5
ответ дан Jacob 31 August 2018 в 22:06
поделиться
import datetime, time

print datetime.datetime.fromtimestamp(time.time())
print datetime.datetime.fromtimestamp(43111.0)
5
ответ дан jerboa 31 August 2018 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: