Python: Excels Datumsformat

Datum
Kommentare 0

Excel-Zellen unterschiedlicher Fortmate entwirren. in einem Feld steht entweder ein Datum oder ein Datumsbereich (z. B. 15.05.2022–30.05.2022). In Excel sind das nicht identische Formate. Das Datum wird intern als Anzahl der Tage nach dem 1.1.1990 dargestellt, zweiteres ist eine Zeichenkette (String, bzw. in Python str).

Nach lesen vieler Beiträge in stackoverflow habe ich eine Lösung entwickelt.

Gewünschtes Ausgabeformat: YYYY-mm-dd; es soll also aus 30.05.2024 werden: 2024-05-30

Die Routine datum1() liefert das erste Datum, datum() das zweite:

def datum1(dates):
    result=‘‚
    if isinstance(dates, str):
        if not dates:
            result=‘‚
        else:
            d=dates[-10:2-10]
            m=dates[-7:2-7]
            y=dates[-4:]
            result=“{}-{}-{}“.format(y,m,d)
    if isinstance(dates, int):
        result = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + dates – 2).strftime(‚%Y-%m-%d‘)
    return result

def datum(dates):
    result=‘‚
    if isinstance(dates, int):
        result = datetime.fromordinal(datetime(1900, 1, 1).toordinal() + dates – 2).strftime(‚%Y-%m-%d‘)
    if isinstance(dates, str):
            d=dates[-10:2-10]
            m=dates[-7:2-7]
            y=dates[-4:]
            result=“{}-{}-{}“.format(y,m,d)
    return result

Entscheidend ist, das Format der Zelle zu bestimmen. Steht ein Datum darin, so ist das Format int, steht ein Datumsbereich darin, ist das Format str. Diese Prüfung wird vorgenommen mit isinstance(var, typ). Der Rest ist Arbeiten mit Teilstrings, bzw. formatierter Ausgabe.

Autor
Kategorien Ratgeber, Python

Kommentare

Keine Kommentare

Kommentare

Geben Sie Ihren Kommentar hier ein. * Eingabe erforderlich. Sie müssen die Vorschau vor dem Absenden ansehen.





Kommentare

Keine Kommentare

Kommentare

Geben Sie Ihren Kommentar hier ein. * Eingabe erforderlich. Sie müssen die Vorschau vor dem Absenden ansehen.