datetime funktion

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
Daveron

Donnerstag 25. August 2005, 13:14

Hi,

ist es möglich bei der datetime funktion now() die mircoseconds wegzulassen? meine datetimeeinträge haben standardmässig microseconds auf 0...
Benutzeravatar
jens
Moderator
Beiträge: 8461
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 25. August 2005, 13:28

Sind das nicht Nachkommastellen? Die sind dann nach einem int() oder round() weg...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Daveron

Donnerstag 25. August 2005, 15:34

ne das funktioniert nicht, da round eine float brauch und ich eine datetime nicht mit int() konvertieren kann.
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Donnerstag 25. August 2005, 16:14

Ich bin nicht sicher, ob ich verstanden habe, was du eigentlich genau haben willst, ich gehe einfach mal davon aus, du willst ein datetime.datetime-Objekt, welches datetime.dateime.now() entspricht mit dem Unterschied, dass die microseconds aus 0 gesetzt sind?

Das würde ich erstmal so machen:

Code: Alles auswählen

% python
Python 2.3.5 (#2, Jun 19 2005, 13:28:00) 
[GCC 3.3.6 (Debian 1:3.3.6-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> n = datetime.datetime.now()
>>> print n.microsecond
234185
>>> d = datetime.datetime(n.year, n.month, n.day, n.hour, n.minute, n.second)
>>> print d.microsecond
0
>>> 
BlackJack

Donnerstag 25. August 2005, 23:21

Die `datetime` Objekte haben eine `replace()` Methode:

Code: Alles auswählen

In [70]: datetime.datetime.now()
Out[70]: datetime.datetime(2005, 8, 26, 0, 23, 28, 936525)

In [71]: datetime.datetime.now().replace(microsecond=0)
Out[71]: datetime.datetime(2005, 8, 26, 0, 23, 32)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Freitag 26. August 2005, 06:59

BlackJack hat geschrieben:Die `datetime` Objekte haben eine `replace()`
Hi BlackJack!

Das klingt ja toll :) und ich habe mich immer so, wie es henning beschrieben hat, abgeplagt. :?

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Freitag 26. August 2005, 11:46

Ah super, hab ich auch mal wieder was dazugelernt :-)
Was mich interessieren würde:
Wird dabei ein neues datetime-Objekt erzeugt oder das alte veändert?
Sind datetime-Objekte überhaupt mutabel?
BlackJack

Freitag 26. August 2005, 23:31

henning hat geschrieben:Wird dabei ein neues datetime-Objekt erzeugt oder das alte veändert?
Man bekommt ein neues Objekt:

Code: Alles auswählen

In [16]: dt = datetime.datetime.now()

In [17]: id(dt)
Out[17]: 1073848168

In [18]: id(dt.replace(microsecond=0))
Out[18]: 1073848216
Antworten