Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Suche RFC3339-Implementierung (https://www.delphipraxis.net/174087-suche-rfc3339-implementierung.html)

Morphie 2. Apr 2013 20:06

Suche RFC3339-Implementierung
 
Ich bin gerade dabei, den Zugriff auf die Google Calendar API in Delphi zu implementieren. Bei der Gelegenheit muss ich mich zwangläufig das erste Mal mit REST / JSON beschäftigen.
Die Aufrufe funktionieren jetzt schon mal soweit, dass ich die passenden JSON-Responses bekomme.
Allerdings habe ich im Moment noch Probleme dabei, das DateTime-Format aus dem JSON (RFC3339) in ein passendes Delphi-TDateTime-Format (und umgekehrt) zu bringen.

Hat da jemand schon zufällig einen vernünftigen Algorithmus in Delphi für?

Beispiel:
Code:
"updated": "2013-04-02T09:13:17.553Z",
"created": "2013-04-02T09:13:17.000Z",
"start": {
 "dateTime": "2013-04-02T14:30:00+02:00"
},
"end": {
 "dateTime": "2013-04-02T17:00:00+02:00"
}

Sir Rufo 2. Apr 2013 21:41

AW: Suche RFC3339-Implementierung
 
Ei, jo, sollte eigentlich jede JSON Bibliothek beherrschen

z.B. Bei Google suchensuperobject

Bernhard Geyer 2. Apr 2013 21:49

AW: Suche RFC3339-Implementierung
 
Das was du sieht ist das Standard ISO-Datumsformat.
Ein bischen Copy(...) angewandt und das dann in die EncodeDateTime-Funktion und schon passts.

ist eigentlich fast zu trivial um hier von einen Algorithmus zu sprechen.

Morphie 3. Apr 2013 06:27

AW: Suche RFC3339-Implementierung
 
Zitat:

Zitat von Sir Rufo (Beitrag 1209752)
Ei, jo, sollte eigentlich jede JSON Bibliothek beherrschen

z.B. Bei Google suchensuperobject

Ok, danke! Dann habe ich wohl auf die falsche Bibliothek gesetzt ;)

Zitat:

Zitat von Bernhard Geyer (Beitrag 1209753)
Das was du sieht ist das Standard ISO-Datumsformat.

Okay, das wusste ich noch nicht...

DonManfred 5. Apr 2013 06:30

AW: Suche RFC3339-Implementierung
 
Warum das Rad neu erfinden?
-> http://www.sync-components.com/googl...oogle-calendar

Morphie 5. Apr 2013 09:19

AW: Suche RFC3339-Implementierung
 
1. möchte ich mich sowieso in aktuellere Kommunikationstechniken (REST, SOAP,...) einlesen und
2. ist die Google-Calendar-API nur eine von vielen Implementierungen, die ich vor habe...

Zum Schluss soll eine Bibliothek entstehen, mit der man auf diverse Kalender (Google, Microsoft Live, Outlook, CalDAV,...) zugreifen kann.
Das ganze natürlich über ein einheitliches Interface
Zitat:

Login
GetCalendars
GetTasks
AddTask
DeleteTask
MoveTask
SaveTask
...
Wenn man REST und JSON erst mal verstanden hat, ist die Implementierung auch ein klacks...

Übrigens: Ich habe nirgends eine vernünftige Funktion gefunden, die mir ein ISO8601-Datum vollständig in ein TDateTime umwandelt. Entweder wurde nur das Grundformat berücksichtigt, oder nur das erweiterte Format... Oder Millisekunden wurden nicht berücksichtigt... Oder Zeitzonen führten zu Fehlern... oder die ordinale Darstellungsform wurde nicht verarbeitet... oder die Darstellungsform aufgrund einer Wochennummer wurde nicht verarbeitet... oder, oder, oder...!
Eine Funktion, die komplett fehlerfrei arbeitet, habe ich wie gesagt nicht gefunden. (Indy, diverse JSON-Bibliotheken, diverse 3d-Party-Code,...)

Also habe ich den Hinweis von Bernhard Geyer berücksichtigt und selbst zwei Funktionen geschrieben... Allerdings waren die dann doch nicht so ganz trivial wie vermutet, es gibt bei dem Format nämlich ne ganze Menge zu beachten ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz