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.
_nohtyp_
User
Beiträge: 127 Registriert: Mittwoch 8. Januar 2014, 15:38
Montag 17. März 2014, 20:01
Ich weiß, die Frage wurde schon oft gestellt. Trotzdem kann ich mein Problem nicht lösen:
Ich habe folgendes Datum und Zeit:
Ich versuche mit timedelta 45 Minuten draufzuaddieren:
Fehlermeldung:
Code: Alles auswählen
TypeError: cannot concatenate 'str' and 'datetime.timedelta' objects
Aber ich habe doch keinen string, oder doch?
BlackJack
Montag 17. März 2014, 20:36
@_nohtyp_: Ganz offensichtlich hast Du da eine Zeichenkette. Das sagt die Ausnahme mehr als deutlich.
_nohtyp_
User
Beiträge: 127 Registriert: Mittwoch 8. Januar 2014, 15:38
Montag 17. März 2014, 20:41
Also start_zeit wird so gebildet:
Code: Alles auswählen
start_zeit = datetime(int(jahr), int(monat), int(
tag), int(stunde), int(minute)).isoformat()
P.S: Ja, ich mache jetzt wieder das Vertretungsplan Tool.
EyDu
User
Beiträge: 4881 Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin
Montag 17. März 2014, 21:11
Quizfrage: Was macht die isoformat-Methode?
Das Leben ist wie ein Tennisball.
_nohtyp_
User
Beiträge: 127 Registriert: Mittwoch 8. Januar 2014, 15:38
Montag 17. März 2014, 21:16
Wandelt in String um.
Ok, dass wusste ich nicht.
Und wie löse ich nun das Problem? Wenn ich isoformat weglasse, kommt: 'datetime.datetime' object has no attribute 'decode'
_nohtyp_
User
Beiträge: 127 Registriert: Mittwoch 8. Januar 2014, 15:38
Montag 17. März 2014, 21:24
_nohtyp_ hat geschrieben: Also start_zeit wird so gebildet:
Code: Alles auswählen
start_zeit = datetime(int(jahr), int(monat), int(
tag), int(stunde), int(minute)).isoformat()
Ich meine, wenn ich hier isoformat weglasse, läuft es nicht mehr. Wie löse ich jetzt das Problem mit end_zeit? Also wie beseitige ich den Fehler?
Sirius3
User
Beiträge: 18335 Registriert: Sonntag 21. Oktober 2012, 17:20
Montag 17. März 2014, 21:52
@_nohtyp_: Dein Problem ist nicht, dass es mit »end_zeit« nicht funktioniert, sondern dass Dein Programm nicht mehr funktioniert, wenn Du »isoformat« wegläßt. Objekte werden am Besten erst dann in Strings umgewandelt, wenn sie ausgegeben werden.
DaftWullie
User
Beiträge: 37 Registriert: Donnerstag 17. Mai 2012, 21:28
Montag 17. März 2014, 22:37
@_nohtyp_:
bei mir geht das:
Code: Alles auswählen
>>> from datetime import timedelta, datetime
>>> start_zeit = datetime(1,2,3,4,5,6)
>>> start_zeit
datetime.datetime(1, 2, 3, 4, 5, 6)
>>> end_zeit = start_zeit + timedelta(minutes=45)
>>> print start_zeit.isoformat(), end_zeit.isoformat()
0001-02-03T04:05:06 0001-02-03T04:50:06
Leonidas
Python-Forum Veteran
Beiträge: 16025 Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:
Dienstag 18. März 2014, 09:33
Ja, das Problem ist ja auch, dass _nohtyp_ das durchaus in isoformat umwandeln muss, nur halt nach der Addition der Minuten und nicht davor.
Oder ups, habe ich jetzt die ganze Lösung schon verraten?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice