Verhalten:
Mit meinem Platform API Tool greife ich auf die Indexwerte eines Dokuments zu. Allerdings stimmt das Datum, das ich erhalte, nicht mit dem Datum, das im DocuWare WebClient angezeigt wird überein.
Ursache:
DocuWare speichert das Datum in der Datenbank in der Zeitzone "UTC". Der WebClient rechnet bei der Anzeige des Datums dieses automatisch in die Zeitzone um, in der sich der Rechner befindet. Die Platform API tut dies nicht. Sie gibt den Wert so aus, wie er von der Datenbank geliefert wird.
Lösung:
Es gibt verschiedene Möglichkeiten den Wert auf die Zeitzone des Rechners anzupassen. Zwei Varianten werden im Folgenden beschrieben:
- Ermitteln Sie den Zeitunterschied zwischen der aktuellen Zeitzone in der sich der Rechner befindet und der UTC-Zeit und addieren Sie diesen Unterschied auf den Wert den Sie von der Platform API erhalten:
DateTime dt = ...//Wert in der Datenbank
TimeSpan ts = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now);
DateTime output = dt + ts;
- Nutzen Sie die Methode "ToLocalTime()" für Date oder DateTime Objekte:
DateTime dt = ...//Wert in der Datenbank
DateTime output = dt.ToLocalTime();
