Seite 1 von 1

Datum in Zahlen konvertieren?

Verfasst: Mittwoch 23. Juli 2008, 16:58
von mupic
Hallo,

ich habe folgenden Code:

Code: Alles auswählen

start = datetime.date(2007, 1, 1)
print start
Die Ausgabe sieht dann so aus:
>>> 2007-01-01

Wie kann ich meine Variable "start" aus dem Datumsformat in ein Zahlenformat umwandeln? Ich kann mit diesem Format nicht weiter rechnen.

so sollte es dann aussehen:

20070101

Hat jemand einen Tip oder einen kurzen Code, der das macht?

Danke!

Re: Datum in Zahlen konvertieren?

Verfasst: Mittwoch 23. Juli 2008, 17:07
von Leonidas
mupic hat geschrieben:Wie kann ich meine Variable "start" aus dem Datumsformat in ein Zahlenformat umwandeln? Ich kann mit diesem Format nicht weiter rechnen.
Was willst du denn berechnen? Denn mit ``date``-Objekten kann man durchaus auch rechnen.

Verfasst: Mittwoch 23. Juli 2008, 17:13
von mupic
Hi,

Ich will die Werte dann an ein externes Programm übergeben.
Dieses versteht aber das Datumsformat nicht und liefert ständig eine Fehlermeldung. Ganz normale Zahlenwerte kann ich aber übergeben.

Verfasst: Mittwoch 23. Juli 2008, 17:19
von dor_neue
kleiner Tipp, ich rechne immer mit Timestamp wenn es einfache Berechnungen sind und bei erweiterten Berechnungen nutze ich die Möglichkeiten, die date bieten kann...

Also versuch mal das Datum in einen Timestamp umzuwandeln und übergebe diesen - dann kannste im anderen Programm damit weiterrechnen...


Grundsätzlich klingt es aber nach einem größeren Problm als so, denn ein Datum in eine Zahl umwandeln (z.B. 2008-08-08 -> 20080808) is nur eine Notlösung...

Ansonsten gibt es noch die Möglichkeit, das Datum zu einem string zu konvertieren, dort die "-" zu entferenen und dann den verbleibenden String in eine Zahl zurück umwandeln... Aber das is ja dann richtiger Paddelbau...

Verfasst: Mittwoch 23. Juli 2008, 17:20
von Leonidas
Oder einfach

Code: Alles auswählen

start.strftime("%Y%m%d")

Verfasst: Mittwoch 23. Juli 2008, 19:38
von mupic
Danke!

Aber leider verstehe ich es nicht ganz:

@Leonidas:

Bitte zeig mir nochmal, wie ich das mit meiner Code Zeile zusammen bekommen. Ich bekomme nur Fehlermeldungen.

Danke!

Verfasst: Mittwoch 23. Juli 2008, 19:54
von cofi
Ich verstehe auch nicht ganz wie du da ein Problem haben kannst.

Code: Alles auswählen

import datetime

start = datetime.date(2007, 7, 7)
print start.strftime("%Y%m%d")
Und du hast den von dir gewünschten Output.

Verfasst: Mittwoch 23. Juli 2008, 19:58
von BlackJack
Wie soll man das schon zusammen bringen. Du hast das `datetime`-Exemplar an den Namen `start` gebunden und musst dann die Methode darauf aufrufen:

Code: Alles auswählen

In [6]: import datetime

In [7]: start = datetime.date(2007, 1, 1)

In [8]: start.strftime('%Y%m%d')
Out[8]: '20070101'
Ansonsten ist es sehr hilfreich, wenn Du zeigst was Du versucht hast, und wie die Fehlemeldungen aussehen.