Seite 1 von 1

Zeit mit Python

Verfasst: Montag 1. November 2004, 07:32
von za0
Hallo liebe Pythoniers,

ich würde gerne eine Zeitabfrage machen.
Das habe ich dann so probiert:

Code: Alles auswählen

from time import time
start_time = time()
stunden = int(start_time / (60 * 60))
minuten = int(start_time / 60) % 60
sekunden = int(start_time) % 60
print "begin> ",stunden,",",minuten,",", sekunden
Allerdings sieht die Ausgabe dann so aus:

"begin> 305358 , 27 , 34"
statt
"begin> 7 , 27 , 34"

Kann es sein, dass der Wert 305458 (Stunden) die gezählten Stunden ab 1980 sind (oder sowas)?

Wie kann ich das "umgehen"?

Grüße
za0

Verfasst: Montag 1. November 2004, 08:36
von mawe
Hi!

time() gibt die Zeit in Sekunden seit 1.1.1970 (glaub ich) an. Schau dir mal die Ausgabe von localtime() an.

Code: Alles auswählen

import time
print time.localtime()
Gruß, mawe

Verfasst: Montag 1. November 2004, 09:32
von fs111
time.time() liefert unter Unix die Sekunden seit dem 1.1.1970, unter anderen Systemen kann das anders aussehen. In der Doku steht dazu immer: "since the epoch". Wie das aber z.B. unter Win aussieht, dazu schweigt die Doku.

fs111

Filtern

Verfasst: Montag 1. November 2004, 10:07
von za0
Hallo,

Code: Alles auswählen

from time import time, localtime
print localtime()
...
bewirkt auf meinen (Windoof-Sys) folgende ausgabe:

(2004, 11, 1, 9, 58, 34, 0, 306, 0)

also:

Jahr, Monat, Tag, Stunde, Minute, Sekunde, ??, ?306?, ??

So, jetzt muss ich die 9 die 58 und die 34 rausfiltern. Wie mache ich das am elegantesten ??

Danke,

Grüße

za0

Verfasst: Montag 1. November 2004, 10:16
von mawe
Hi!

Naja, wie Du ja schon richtig erkannt hast, bekommst Du eine Liste. Also greif dir einfach die Elemente raus:

Code: Alles auswählen

hour, minute, second = localtime()[3:6]
Es gibt auch noch einen anderen Weg, z.B. für die Stunde:

Code: Alles auswählen

hour = localtime().tm_hour   # bzw. tm_min, tm_sec
Gruß, mawe

Verfasst: Montag 1. November 2004, 10:55
von za0
Hi Mawe,

Du hast es voll drauf!

Danke :D

Grüße

za0

Verfasst: Montag 1. November 2004, 12:12
von rAiNm4n
Hi,
Wenn du die Zeit bloß ausgeben willst, ist strftime eleganter:

Code: Alles auswählen

import time
time.strftime("%H , %M , %S")
Chris