Zeit übergeben

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
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

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?
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.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Wie sage ich dann: morgen 12 Uhr?
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)
:-)
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Die Zeit lässt sich bei mir so nicht übergeben.
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.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

_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.
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

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'}
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@_nohtyp_
(2014, 2, 30) ist kein Datum.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

Wie sonst?
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@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'
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

@mutella
So praktisch hatte ich jetzt nicht gedacht. :wink:

@Sirius3
Danke, es funktioniert jetzt! :D
_nohtyp_
User
Beiträge: 127
Registriert: Mittwoch 8. Januar 2014, 15:38

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()
BlackJack

@_nohtyp_: Auf ein `datetime`-Objekt ein `timedelta`-Objekt mit 45 Minuten addieren.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

Das steht so ziemlich am Anfang der Dokumentation.
Antworten