Ich versuche, Daten zu analysieren, die ich von einer Excel-Datei in Python erhalten habe. Dazu benutze ich die xlrd
Bibliothek. Ich habe eine Zelle in Excel, deren Wert ist 5/16/2016 12:15 und ich erhalte es in Python als 42506.6493. Ich verstehe, dass Excel das Datum als die Anzahl der Tage seit 1.1.1900 speichert. Also in Python Ich versuche, diese Anzahl von Tagen hinzufügen (nur Tagen jetzt ohne die Fraktion, die die Zeit darstellt) mit dem gleichen Datum zu erhalten, mit dem Code unten:Datumsumrechnungsdifferenz zwischen Python Datetime und Excel
orgDate = datetime.datetime(1900,1,1,0,0,0,0)
xlVal = 42506.6493
newDate = orgDate + datetime.timedelta(days=int(xlVal))
aber wenn ich den Wert lesen newDate
Ich finde es datetime.datetime(2016, 5, 18, 0, 0)
während es sollte 16. Mai nicht 18. Jeder weiß, wie man damit umgeht?
Ich bin kein Python-Entwickler, aber nicht int() den Wert auf eine volle Zahl runden? Also wird Ihr Bruch ".6493" auf "+1" aufgerundet, was bedeutet, dass 42506 zu 42507 wird? – Andreas
Wenn ich mit dem oben genannten richtig bin, dann gibt es einen Tag diff. Das könnte vielleicht daran liegen, dass Tag 0 in Excel Tag 1 in Python ist? So 1900-01-01 12:00 ist in Excel "0,5", aber in Python Datetime "1.5"? – Andreas
Hallo Andreas. Nein, int (x.y) gibt x zurück. Es gibt auch einen zweitägigen Unterschied (18 -> 16) – Y2H