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

Zeit mit Python

Beitragvon za0 » 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])

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

Beitragvon fs111 » 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

Filtern

Beitragvon za0 » 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])

Beitragvon mawe » 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

Beitragvon za0 » 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

Beitragvon rAiNm4n » 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

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]