Datum in Zahlen konvertieren?

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.
mupic
User
Beiträge: 11
Registriert: Montag 21. Juli 2008, 18:20

Datum in Zahlen konvertieren?

Beitragvon mupic » Mittwoch 23. Juli 2008, 16:58

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!
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Datum in Zahlen konvertieren?

Beitragvon Leonidas » Mittwoch 23. Juli 2008, 17:07

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mupic
User
Beiträge: 11
Registriert: Montag 21. Juli 2008, 18:20

Beitragvon mupic » Mittwoch 23. Juli 2008, 17:13

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.
dor_neue
User
Beiträge: 74
Registriert: Montag 16. Juni 2008, 18:51

Beitragvon dor_neue » Mittwoch 23. Juli 2008, 17:19

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...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 23. Juli 2008, 17:20

Oder einfach

Code: Alles auswählen

start.strftime("%Y%m%d")
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mupic
User
Beiträge: 11
Registriert: Montag 21. Juli 2008, 18:20

Beitragvon mupic » Mittwoch 23. Juli 2008, 19:38

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!
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Mittwoch 23. Juli 2008, 19:54

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.
BlackJack

Beitragvon BlackJack » Mittwoch 23. Juli 2008, 19:58

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.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]