Datum/ Uhrzeit mit Zeitzone in Datenbank speichern

  • Antworten:4
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 14

21.07.2014, 15:29:22 via Website

Hallo alle zusammen,

ich bin mittlerweilse völlig überfordert. Habe so viel zu dem Thema gelesen, dass ich gar nicht mehr klar komme. Dabei ist mein Anliegen doch ein ganz simples.

Ich möchte in der SQLite Datenbank meiner Android-App die aktuelle Systemzeit, also Datum, inkl. Uhrzeit und Zeitzone bei einem Click auf einen Button bspw. speichern.

Diese Informationen sind ja alle in einem Calendar-Objekt enthalten. Jetzt kann ich dieses aber nur in einer festgelegten Formatierung über SimpleDateFormat speichern. Was ist aber, wenn ich später aber eine andere Formatierung möchte? Ist doch voll umständlich. Warum nicht als einfachen Zahlencode abspeichern, der wie gewünscht interpretiert, bzw. formatiert werden kann?!

Nur ganz kurz zu meinem Vorhaben:

  1. Aufgabenverwaltungsapp
  2. Fristigkeit einer Aufgabe soll festgelegt werden können
  3. Später soll Datum/ Uhrzeit mit Server synchronisiert werden können
  4. App soll international anwendbar sein
  5. App soll auch funktionieren, wenn Anwender in verschiedenen Zeitzonen die App nutzt

Ich würde mich wirklich freuen, wenn mir jemand ein wenig Hilfestellung leisten würde. Vielen lieben Dank.

Antworten
  • Forum-Beiträge: 11.137

21.07.2014, 15:55:03 via Website

Wenn die App international Anwendbar ein soll, würde ich dier die GMT oder UTC Zeit empfehlen, die kannst du auch errechnen etc..
Warum ist das meit der Formatierung so schwieig?
Du hast ein SimpleDatae Format, darüber schreibst du deine Daten gewünschtes Format (das vom DateFormat unterstützt wird) in die DB.
Beim lesen parst du es wieder in ein SimpleDateFormat object.
Der Rest ist ja nur Darstellung, da du das Date Objekt natürlich dann auch anders Ausgeben kannst, du musst es halt erst Parsen Aber das sollte Kein Problem sein, die meiste Arbeit erledigt dann das System.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 3.112

21.07.2014, 20:04:36 via Website

Warum musst Du also die Zeitzone speichern? Einfach einen Unix Timestamp (UTC) speichern, den kannst Du dann beliebig formatieren und der gültigen Zeitzone anpassen..

Antworten
  • Forum-Beiträge: 14

22.07.2014, 10:02:32 via Website

Okay, also ich speichere nun das Datum erst mal nach der internationalen Norm ISO 8601 "yyyy-MM-dd HH:mm:ss.SSSZ"

Werde ja später sehen, wie ich mit der Ausgabe im lokalen Format klarkomme. War mir nur wichtig zu wissen, dass ich mir nicht etwas zusammenwurschtel und es einen besseren gängigen Weg gibt.

Also vielen Dank erst mal soweit.

Antworten
Gelöschter Account
  • Forum-Beiträge: 7

22.07.2014, 11:18:36 via Website

Ist kein Gefrickel ;)

In der SQLite Doku (Google "sqlite data types" ) steht sogar, dass es keine integrierten Zeit-/Datumsdatentypen gibt.
Unter "Date and Time Datatype" sind auch einige Möglichkeiten aufgeführt, wie Zeitpunkte gespeichert werden können.

— geändert am 22.07.2014, 11:18:48

Antworten