timestamp von aktuellem tag (zeitpunkt 00:00:00)

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
nepi
User
Beiträge: 23
Registriert: Montag 23. Juni 2008, 11:26

hallo zusammen

bin noch nicht solange in pyhton unterwegs. desshalb kenne ich mich noch nicht mit allen funktionen der libs aus..

ich möchte gerne den timestamp vom aktuellen datum haben, aber dieser sollte den zeitpunkt 00:00:00 haben, sprich genau wenn der tag beginnt.

habe es so gemacht, abr es gibt sicher eine bessere möglichkeit, da ich so zuerst ein stirng mache, dann den wieder parse...

Code: Alles auswählen

time.mktime(time.strptime(time.strftime("%d.%m.%Y", time.localtime()), "%d.%m.%Y"))
vielen dank
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Code: Alles auswählen

>>> import datetime
>>> print datetime.datetime(*datetime.date.today().timetuple()[:3])
2008-07-11 00:00:00
BlackJack

Ich würd's so machen:

Code: Alles auswählen

In [225]: import datetime

In [226]: int(datetime.date.today().strftime('%s'))
Out[226]: 1215727200
@numerix: Der Uhrzeitanteil ist bei `date.today()` schon auf 0.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Oder so:

Code: Alles auswählen

>>> print datetime.datetime.combine(datetime.date.today(),datetime.time(0))
2008-07-11 00:00:00
@BlackJack:
Ich verstehe nicht, wie ich deine Information zur konkreten Vereinfachung umsetzen soll.
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

BlackJack hat geschrieben:Ich würd's so machen:

Code: Alles auswählen

In [225]: import datetime

In [226]: int(datetime.date.today().strftime('%s'))
Out[226]: 1215727200
@numerix: Der Uhrzeitanteil ist bei `date.today()` schon auf 0.
Also bei mir funktioniert dein Tipp nicht...

Code: Alles auswählen

In [7]: sys.version
Out[7]: '2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)]'

In [8]: import datetime

In [9]: int(datetime.date.today().strftime('%s'))
---------------------------------------------------------------------------
<type 'exceptions.ValueError'>            Traceback (most recent call last)

c:\<ipython console> in <module>()

<type 'exceptions.ValueError'>: invalid literal for int() with base 10: ''
BlackJack

@numerix: Das Ergebnis soll die Zahl 1215727200 sein, keine Zeichenkette.

@Zap: Hm, Schade, dann funktioniert das unter Windows nicht. :-) Das hier sollte aber gehen:

Code: Alles auswählen

In [240]: time.mktime((datetime.date.today().timetuple()))
Out[240]: 1215727200.0
nepi
User
Beiträge: 23
Registriert: Montag 23. Juni 2008, 11:26

super... vielen dank euch...
Benutzeravatar
Michael Schneider
User
Beiträge: 569
Registriert: Samstag 8. April 2006, 12:31
Wohnort: Brandenburg

nepi hat geschrieben:habe es so gemacht, abr es gibt sicher eine bessere möglichkeit, da ich so zuerst ein stirng mache, dann den wieder parse...

Code: Alles auswählen

time.mktime(time.strptime(time.strftime("%d.%m.%Y", time.localtime()), "%d.%m.%Y"))
Hi Nepi,

wenn ich Deinen Code ausführe, erhalte ich aber
'Fri Jul 11 01:00:00 2008'
Liegt das an der GMT oder an der Sommerzeit?

Gruß,
Michel
Diese Nachricht zersört sich in 5 Sekunden selbst ...
BlackJack

Das kann nicht sein:

Code: Alles auswählen

In [242]: time.mktime?
Type:           builtin_function_or_method
Base Class:     <type 'builtin_function_or_method'>
String Form:    <built-in function mktime>
Namespace:      Interactive
Docstring:
    mktime(tuple) -> floating point number

    Convert a time tuple in local time to seconds since the Epoch.
Die Funktion nimmt ein Tupel entgegen und liefert eine Fliesskommazahl. Wie Du da das Datum als Zeichenkette herausbekommst, ist mir ein Rätsel!?
Antworten