Zeit mit Python

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
za0
User
Beiträge: 17
Registriert: Mittwoch 22. September 2004, 19:50

Montag 1. November 2004, 07:32

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
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Montag 1. November 2004, 08:36

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
fs111
User
Beiträge: 170
Registriert: Samstag 15. November 2003, 11:42
Kontaktdaten:

Montag 1. November 2004, 09:32

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
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910
za0
User
Beiträge: 17
Registriert: Mittwoch 22. September 2004, 19:50

Montag 1. November 2004, 10:07

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
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Montag 1. November 2004, 10:16

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
za0
User
Beiträge: 17
Registriert: Mittwoch 22. September 2004, 19:50

Montag 1. November 2004, 10:55

Hi Mawe,

Du hast es voll drauf!

Danke :D

Grüße

za0
rAiNm4n
User
Beiträge: 19
Registriert: Mittwoch 4. Juni 2003, 11:30
Wohnort: Berlin

Montag 1. November 2004, 12:12

Hi,
Wenn du die Zeit bloß ausgeben willst, ist strftime eleganter:

Code: Alles auswählen

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