Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Handling Zeitzone Android (https://www.delphipraxis.net/195798-handling-zeitzone-android.html)

sko1 27. Mär 2018 09:27

Handling Zeitzone Android
 
Hallo,

irgendwie verstehe ich das Handling der Zeitzone in Android nicht:

Ich habe im Februar einen Termin in den Android Kalender eingetragen mit:
Termin 10:00 Uhr und Zeitzone GMT+1, der wird dann auch richtig 10:00 angezeigt

Heute nun sind wir in der Sommerzeit, ein genau so geschriebener Termin wird im Kalender eine Stunde zu spät angezeigt!

Schreibe ich also den Termin 10:00 Uhr und Zeitzone GMT+2 (also die aktuelle Sommerzeiteinstellung berücksichtigen) wird er trotzdem falsch (eine Stunde zu spät) angezeigt!

Was aber ist wenn ich heute einen Termin für den 15.11.18 10:00 eintragen möchte? Dann müsste ich ja wieder die GMT+1 Angabe verwenden, und wenn das richtig ist, brauche ich denn ja generell nicht den "heutigen" Sommerzeitstatus sondern benötige den zum entsprechenden Datum?

Gibt es dafür etwas fertig nutzbares?

Ciao
Stefan

mkinzler 27. Mär 2018 10:37

AW: Handling Zeitzone Android
 
Die Zeitzone bleibt GMT+1, egal ob Normal- oder Sommerzeit.

KodeZwerg 27. Mär 2018 10:51

AW: Handling Zeitzone Android
 
Falls Du Sommer-/Winterzeit als feature einbauen möchtest, hier gibt es einen guten Beispiel-Code.

Sherlock 27. Mär 2018 11:02

AW: Handling Zeitzone Android
 
Unsere aktuelle Zeitzone lautet CEST und ist definiert als UTC+2.
Quelle: https://de.wikipedia.org/wiki/Sommer...che_Sommerzeit

Viele Systeme wissen aber selbst wann Sommerzeit ist und wann nicht, und nehmen die zusätzliche Stundenaddition selbst vor. Das muss man natürlich wissen/testen.

Sherlock

sko1 27. Mär 2018 11:05

AW: Handling Zeitzone Android
 
Ich schrieb von Android und dachte FMX ist da klar, Dein Link nutzt ShellApi....

Ich denke mit einigen Tests bin ich schlauer geworden:

Die Zeitangabe die zum Android-Kalender gesendet wird ist eine UInt64 Millisekundenzahl, diese scheint UTC-Zeit sein zu müssen, so dass ich vor dem Senden 3600000 Millisekunden bei Datum in der Winterzeit und 7200000 Millisekunden bei Datum in der Sommerzeit abziehen muss?

Liege ich da richtig?

Ciao
Stefan

Der schöne Günther 27. Mär 2018 11:49

AW: Handling Zeitzone Android
 
Wenn du eine UTC-Zeit hast ist doch alles super. Wenn du das in lokale Zeit zur Anzeige umwandeln willst (oder wieder zurück) findest du dazu alles in der Klasse
Delphi-Quellcode:
TTimeZone
unter
Delphi-Quellcode:
System.DateUtils
.

sko1 27. Mär 2018 12:31

AW: Handling Zeitzone Android
 
Delphi-Quellcode:
var
  d, m, y: word;
  zp: TDateTime;
  ttz: TTimeZone;
begin
  ttz := TTimeZone.Create;
  zp := encodedate(2018, 2, 12);
  if ttz.IsDaylightTime(zp, false) then  <-- hier knallt es
....
ttz.Free;
"Abstrakter Fehler aufgetreten"

aber warum?

Ciao
Stefan

FaTaLGuiLLoTiNe 27. Mär 2018 12:39

AW: Handling Zeitzone Android
 
Schau mal hier:

Zitat:

Warning: Do not try to instantiate the TTimeZone class because it is an abstract class. Use the TTimeZone.Local static property instead to get access to an instance of TTimeZone.

mkinzler 27. Mär 2018 12:41

AW: Handling Zeitzone Android
 
Diese Methode ist in dieser Klasse absttrakt:
Zitat:

Warnung: Versuchen Sie nicht, die Klasse TTimeZone zu instantiieren, da es sich um eine abstrakte Klasse handelt. Verwenden Sie stattdessen die statische Eigenschaft TTimeZone.Local, um auf eine Instanz von TTimeZone zuzugreifen.

sko1 27. Mär 2018 13:04

AW: Handling Zeitzone Android
 
Zitat:

Warnung: Versuchen Sie nicht, die Klasse TTimeZone zu instantiieren, da es sich um eine abstrakte Klasse handelt. Verwenden Sie stattdessen die statische Eigenschaft TTimeZone.Local, um auf eine Instanz von TTimeZone zuzugreifen.
Genau das war die Ursache, vielen Dank!
Warum aber diese Klasse einen Construktor hat?

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 Uhr.
Seite 1 von 2  1 2      

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