Seite 1 von 1

Zeit string auswerten und vergleichen

Verfasst: Donnerstag 16. November 2006, 10:39
von karomi
Hallo Allerseits,
ich habe im moment folgende Hürde zu überwinden.
Ich habe eine Zeit String und der sieht so aus:
"06/11/16,09:44:06+04"

Ich möchte mehrer Zeitstrings mit einander vergleichen und den aktuellesten nehmen.

Z.B. habe ich folgende Strings in verschiedene Datums und Uhrzeiten:
"06/11/16,09:40:06+04"
"06/11/13,09:44:06+04"
"06/11/10,10:44:06+04"
"06/10/16,09:44:06+04"

an sieht dasss die Strings im Datum, Uhrzeit verschieden sind.
Wie kann ich den aktuellesten aauswählen.

Ich bedanke mich bei euch und ich schätze dieses Forum sehr und hoffe von euch geholfen zu werden.
LG
Karomi

Verfasst: Donnerstag 16. November 2006, 10:44
von george
Hey,

so wie in deinem ersten Thread

Code: Alles auswählen

>>> list1 = ["06/11/16,09:40:06+04", "06/11/13,09:44:06+04", "06/11/10,10:44:06+04", "06/10/16,09:44:06+04"]
>>> max(list1)
'06/11/16,09:40:06+04'
>>>
greets george

Verfasst: Donnerstag 16. November 2006, 13:29
von Blattlaus
Jap, sofern die Daten so formatiert sind, geht das in der Art problemlos.

Verfasst: Donnerstag 16. November 2006, 13:38
von BlackJack
Nö geht nicht:

Code: Alles auswählen

In [18]: max('06/10/16,09:05:00+03', '06/10/16,10:00:00+04')
Out[18]: '06/10/16,10:00:00+04'
Das ist falsch, die erste Zeitangabe ist 5 Minuten grösser als die zweite.

Verfasst: Donnerstag 16. November 2006, 13:52
von Y0Gi

Code: Alles auswählen

import datetime
import time

def to_datetime(s):
    return datetime.datetime.fromtimestamp(
        time.mktime(time.strptime(s, '%Y-%m-%d %H:%M:%S')))
Da anhand der Doku des time-Moduls den Format-String an deine Daten anpassen. Anschließend hast du datetime-Objekte, die du wunderbar einfach vergleichen, sortieren, neu formatieren, verrechnen und anderweitig komfortabel benutzen kannst.

Verfasst: Donnerstag 16. November 2006, 14:03
von BlackJack

Code: Alles auswählen

import datetime


def as_datetime(datestring):
    elements = [int(datestring[i*3:i*3+2]) for i in xrange(7)]
    
    if elements[0] >= 69:
        elements[0] += 1900
    else:
        elements[0] += 2000
    
    if datestring[-3] == '-':
        elements[-1] = -elements[-1]
    
    return (datetime.datetime(*elements[:-1])
            - datetime.timedelta(hours=elements[-1]))


def main():
    datestrings = ['06/11/16,09:40:06+04',
                   '06/11/13,09:44:06+04',
                   '06/11/10,10:44:06+04',
                   '06/10/16,09:44:06+04']

    datestrings = ['06/10/16,09:05:00+03', '06/10/16,10:00:00+04']
    datestrings.sort(key=as_datetime)
    print datestrings[-1]