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