Unixtime zu Datum mit Zeit konvertieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
linise
User
Beiträge: 1
Registriert: Dienstag 20. Juli 2010, 19:38

Hallo.

Ich habe gegoogelt bis zum geht nicht mehr. Doch ich fand immer nur hinweise wie es umgekehrt geht.

Ein ganz einfaches Problem. Ich möchte im Appspot aus einer GQL-Datenbank aus einer Float-Unixtime ein richtiges Datum mit Zeit "berechnen".

Ich habe das hier (fragt mich bitte nicht mehr woher ich das habe) probiert:

Code: Alles auswählen

records = db.GqlQuery( "SELECT * FROM mem_v1 LIMIT 10" ) # ORDER BY date  DESC LIMIT 10
count = records.count()
for i in range(1, count):
    strcreate = strftime("%Y-%m-%d %H:%M:%S", records[i].create )
leider mit Fehlermeldung:

Code: Alles auswählen

    strcreate = strftime("%Y-%m-%d %H:%M:%S", records[i].create )
TypeError: argument must be 9-item sequence, not float
Urspünglich habe ich den strftime Befehl in der Form immer erfolgreich genutzt:

Code: Alles auswählen

datetimestamp = strftime("%Y-%m-%d %H:%M:%S", gmtime())
Nun nehme ich aber für die DB time.time() als Unixtime/QuelllZeit womit ich auch prima Datensätze nach einigen Wochen automatisch wieder löschen kann.

Ich bin nur nun leider überfragt was ich versuchen weiter soll. Ich bin schon kurz davor einfach die Unixzeit und das komplette Datum in die Datenbank zu schreiben. Aber das wäre ja irgendwie verschwenderisch.

Vielleicht weiß jemand zufällig einen guten Gedanken für mich. Danke allen im Voraus.
BlackJack

@linise: Nochmal in die Doku von `gmtime()` schauen, würde ich sagen.
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

Moin,

die Zeit in Sekunden bezieht sich soweit ich weiß auf die GMT.
Du solltest natürlich vorher wissen, ob Du Deine Zeit in GMT

Code: Alles auswählen

strcreate = strftime("%Y-%m-%d %H:%M:%S", gmt(float(records[i].create)))
... oder Lokalzeit

Code: Alles auswählen

strcreate = strftime("%Y-%m-%d %H:%M:%S", localtime(float(records[i].create)))
... ausgeben möchtest.

Gruß,
Michael
Diese Nachricht zersört sich in 5 Sekunden selbst ...
Antworten