Извлечение даты и времени из поплавка в 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')