Seite 1 von 1

Dateum um 1h stunde verändern

Verfasst: Samstag 14. Februar 2004, 00:57
von 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

Verfasst: Samstag 14. Februar 2004, 08:40
von MacEvil
Hi,

machs doch bei Linux einfach so

Code: Alles auswählen

print "\n New time:"+(cstime-2) 

Verfasst: Samstag 14. Februar 2004, 11:14
von Milan
@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

Verfasst: Samstag 14. Februar 2004, 17:31
von 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.

Verfasst: Samstag 14. Februar 2004, 17:46
von Milan
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