/ / Pobieranie datetime z float i odwrotnie w python - python

Pobieranie datetime z float i odwrotnie w python - python

Czy może mi powiedzieć, jak uzyskać datetime z unosić w python?

Na przykład mam liczbę zmiennoprzecinkową, powiedzmy 43111.0, teraz chcę uzyskać datetime na to.

Odpowiedzi:

21 dla odpowiedzi № 1

Wygląda jak format datetime programu Excel, o nazwie data seryjna. Szybki i brudny sposób na konwersję:

>>> import datetime
>>> serial = 43111.0
>>> seconds = (serial - 25569) * 86400.0
>>> datetime.datetime.utcfromtimestamp(seconds)
datetime.datetime(2018, 1, 11, 0, 0)

5 dla odpowiedzi nr 2
import datetime, time

print datetime.datetime.fromtimestamp(time.time())
print datetime.datetime.fromtimestamp(43111.0)

5 dla odpowiedzi nr 3

Tak więc z odrobiną matematyki:

Jeśli 43111 to 11 stycznia 2018 r., Wówczas 0 to 30 grudnia 1899 r. Python ma datetime.date.fromordinal()

Zwróć datę odpowiadającą prolepticowiNumer porządkowy gregoriański, gdzie 1 stycznia roku 1 ma porządek 1. Wartość Błąd jest podniesiona, chyba że 1 <= porządkowa <= date.max.toordinal (). Dla każdej daty d, date.fromordinal (d.toordinal ()) == d.

Jeśli używasz tego z offsetem, masz:

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

Nadzieję, która pomaga, nawet jeśli nie działa dla pływaków.


3 dla odpowiedzi № 4

Spróbuj tego:

from datetime import datetime

datetime.fromtimestamp(*your_timestamp_here*).strftime("%Y-%m-%d")