Seite 1 von 1
Zeit übergeben
Verfasst: Mittwoch 29. Januar 2014, 16:39
von _nohtyp_
Code: Alles auswählen
def InsertSingleEvent(calendar_service, title, content, where, start_time=None, end_time=None):
...
if start_time is None:
# Use current time for the start_time and have the event last 1 hour
start_time = time.strftime('%Y-%m-%dT%H:%M:%S.000Z', time.gmtime())
end_time = time.strftime('%Y-%m-%dT%H:%M:%S.000Z', time.gmtime(time.time() + 3600))
event.when.append(gdata.calendar.When(start_time=start_time, end_time=end_time))
new_event = calendar_service.InsertEvent(event, '/calendar/feeds/default/private/full')
return new_event
Aus Google Calendar API. Wie kann ich die Zeit in einer Variable übergeben?
Der Rest geht ja mit:
Code: Alles auswählen
InsertSingleEvent(calendar_service, 'Test', 'test', 'wo')
Wie kann ich jetzt noch die Zeit übergegeben?
Re: Zeit übergeben
Verfasst: Mittwoch 29. Januar 2014, 16:51
von BlackJack
@_nohtyp_: Na einfach als Argumente übergeben. Google möchte das als Sekunden seit… und zwar nicht lokal sondern bezogen auf GMT. Also das was `time.gmtime()` liefert.
Re: Zeit übergeben
Verfasst: Mittwoch 29. Januar 2014, 17:59
von _nohtyp_
Wie sage ich dann: morgen 12 Uhr?
Re: Zeit übergeben
Verfasst: Mittwoch 29. Januar 2014, 18:23
von BlackJack
Das ist doch ganz einfach (ungetestet):
Code: Alles auswählen
In [23]: time.gmtime(time.mktime(datetime.datetime(2014, 1, 30, 12).timetuple()))
Out[23]: time.struct_time(tm_year=2014, tm_mon=1, tm_mday=30, tm_hour=11, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=30, tm_isdst=0)

Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 17:05
von _nohtyp_
Die Zeit lässt sich bei mir so nicht übergeben.
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 17:09
von BlackJack
@_nohtyp_: Verdammt, ich seh gerade dass ich's falsch interpretiert habe. Die Zeit muss als Zeichenkette in der Form übergeben werden wie der Code das mit der aktuellen Zeit macht wenn man keine Zeit übergibt.
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 17:10
von /me
_nohtyp_ hat geschrieben:Die Zeit lässt sich bei mir so nicht übergeben.
Und warum nicht? Zeige Code und zeige die Fehlermeldung die du bekommst.
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 19:15
von _nohtyp_
Ich übergebe die Zeit, die sich so aufbaut:
Code: Alles auswählen
zeit = '%i-%i-%iT%i:%i:00.000Z' % (2014, 02, 30, stunde, minute)
und bekomme
File "/Library/Python/2.7/site-packages/gdata/service.py", line 1358, in PostOrPut
'reason': server_response.reason, 'body': result_body}
gdata.service.RequestError: {'status': 400, 'body': '[Line 2, Column 256, element ns1:when] Badly formatted datetime', 'reason': 'Bad Request'}
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 19:25
von mutetella
@_nohtyp_
(2014, 2, 30) ist kein Datum.
mutetella
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 19:26
von _nohtyp_
Wie sonst?
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 19:30
von Sirius3
@mutetella: Dieses Jahr gibt es einen 30. Februar.
@_nohtyp_: Außerdem sollte Monat, Tag, Stunde und Minute aus jeweils 2 Ziffern bestehen. Warum verwendest Du kein datetime-Modul?
Code: Alles auswählen
>>> datetime.datetime(2013,2,23,14,45).isoformat()
'2013-02-23T14:45:00'
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 19:44
von _nohtyp_
@mutella
So praktisch hatte ich jetzt nicht gedacht.
@Sirius3
Danke, es funktioniert jetzt!

Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 20:43
von _nohtyp_
Wie kann ich jetzt eine Variable erstellen, die eine dreiviertel Stunde später ist, als die erste.
also
Code: Alles auswählen
datetime.datetime(2013,2,23,14,45).isoformat()
datetime.datetime(2013,2,23,14,45 + 45).isoformat()
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 21:23
von BlackJack
@_nohtyp_: Auf ein `datetime`-Objekt ein `timedelta`-Objekt mit 45 Minuten addieren.
Re: Zeit übergeben
Verfasst: Donnerstag 30. Januar 2014, 21:25
von Sirius3
Das steht so ziemlich am Anfang der
Dokumentation.