Python Sekunden seit 01.01.1950 in Datum umwandeln.

Woodz

Lieutenant
Registriert
Apr. 2009
Beiträge
696
Hallo.

Wie im Betreff geschrieben, besitze ich die Sekunden ab dem 01.01.1950 und diese möchte ich in ein Datum umwandeln.
Das Problem ist nur, dass die Bestimmung mit dem datetime Modul vom 01.01.1970 erfolgt.

Code:
from datetime import datetime

date_in_sec = 2305879200
datetime.fromtimestamp(date_in_sec)

> 2043-01-26 10:00:00

Wie kann ich die Bestimmung vom 01.01.1950 veranlassen?



Grüße
 
20 Jahre in Sekunden subtrahieren und dann den wert an fromtimestamp übergeben.
 
das Objekt timedelta unterstützt nur maximal "Wochen" eine Zeitdifferenz von 20 Jahren kann ich nicht definieren, da die Anzahl der Tage pro Jahr variiert.
 
Wenn es bloß eine Variable mit der Anz. Sekunden ist, sind ja auch einfache mathematische Operationen möglich und du bist nicht auf timedelta beschränkt.
 
  • Gefällt mir
Reaktionen: Aduasen
Vielleicht mit Kanonen auf Spatzen, aber ich verwende gern die Datums-Funktionen von pandas

Python:
import pandas as pd

ts_1950 = pd.Timestamp('01.01.1950')
ts_new = ts_1950 + pd.Timedelta(seconds=2305879200)

print(ts_new)
> 2023-01-26 10:00:00

Edit:
Oder etwas allgemeiner die Lösung als Funktion:
Python:
def seconds_to_ts(date_in_sec, offset='01.01.1950'):
    import pandas as pd
    return pd.Timestamp(offset) + pd.Timedelta(seconds=date_in_sec)
 
Zuletzt bearbeitet:
Ohh Leude Leude Leude. Jetzt stand ich aber wirklich auf dem "Schlauch".
Muss natürlich nur das timedelta vom 01.01.1970 bis 01.01.1950 abziehen. Boah, peinlich. Nicht sooo elegant aber ok.
Python:
tdelta = (datetime(1970,1,1) - datetime(1950,1,1)).total_seconds()

datetime.fromtimestamp(2305879200-tdelta)
 
Aber eine Tageslänge etc ist doch fest definiert.
Schreib es dir selber, denk aber an Schaltsekundn und Schaltjahre
 
Piak schrieb:
Schreib es dir selber, denk aber an Schaltsekundn und Schaltjahre
Die gibt es, zumindest beim Unix Timestamp, explizit nicht.
 
Zurück
Oben