Dateum um 1h stunde verändern

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
carsten

Ich möchte ein Datum/Zeit um eine Stunde (oder x Minuten, etc) verändern. Verwendet wird das, bspw. um bei Faxen in der Sendewarteschlange die Sendezeit einfach zu verändern.
Ich hatte dazu (min. Python 2.2 ) folgendes Ausgedacht:

Code: Alles auswählen

import time

formtime="2005-07-01 20:00" # (parsed) input from a html form
# convert it to a time struct
timestruct = time.strptime(formtime,"%Y-%m-%d %H:%M")
# convert the time into seconds
temptime = time.mktime(timestruct)
# add one huer
temptime = temptime + 3600            
# and convert it back to a timestruct
timestruct = time.localtime(temptime)
# to print out the time (the outout of asctime is also needed by my program)
cstime = time.asctime(timestruct)
print "\n New time:"+cstime
Leider wird in diesem Beispiel, unter Pyhton 2.2.1/SuSE 8.1 die Zeit um zwei Stunden geändert. Ich vermute mal, dies hängt damit zusammen, das jetzt Winterzeit ist, und das Datum im Sommer ist.
Unter Python 2.3 (SuSE 9.0 / WinXP) passiert das aber nicht. die Variablen time.altzone ,time.daylight,time.timezone sind jeweils glech auf allen Systemen.
Ist das ein Fehler in Python 2.2.1 oder habe ich was falsch verstanden?

gruß,
Carsten

capimin.berlios.de
Mail: cibi bei users.berlios.de
MacEvil
User
Beiträge: 52
Registriert: Mittwoch 21. Januar 2004, 21:40

Hi,

machs doch bei Linux einfach so

Code: Alles auswählen

print "\n New time:"+(cstime-2) 
Möge die Python-Community gedeihen
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

@MacEvil: sinnloses Posting, da es nix bringt (falsche Typen)
@carsten: kannst du mal unter das timestruct = time.strptime(formtime,"%Y-%m-%d %H:%M") ein print timestruct setzten? Wenn meine Vermutung stimmt, dürfte der letzte Wert im Tupel ungleich -1 sein...

Milan
carsten

kannst du mal unter das timestruct = time.strptime(formtime,"%Y-%m-%d %H:%M") ein print timestruct setzten? Wenn meine Vermutung stimmt, dürfte der letzte Wert im Tupel ungleich -1 sein...
mist, ich dachte das hätte ich auch verglichen. auf dem "Problem"-server (2.2.1) ist timstruct. tm_isdst auf 0 gesetzt bei allen anderen System auf -1.

Vielen Dank für die Hilfe.
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

jupp... das regelt die Sommerzeit, die bei Umwandlungen aus Strings nicht bekannt ist. 0 ist aus, 1 ist an und bei -1 wird sie automatisch berechnet.

hth, Milan
Antworten