AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Handling Zeitzone Android

Ein Thema von sko1 · begonnen am 27. Mär 2018 · letzter Beitrag vom 27. Mär 2018
Antwort Antwort
Seite 1 von 2  1 2      
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

Handling Zeitzone Android

  Alt 27. Mär 2018, 09:27
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

Geändert von sko1 (27. Mär 2018 um 10:26 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 10:37
Die Zeitzone bleibt GMT+1, egal ob Normal- oder Sommerzeit.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 10:51
Falls Du Sommer-/Winterzeit als feature einbauen möchtest, hier gibt es einen guten Beispiel-Code.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 11:02
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
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 11:05
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
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 11:49
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 TTimeZone unter System.DateUtils .
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 12:31
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
  Mit Zitat antworten Zitat
Benutzerbild von FaTaLGuiLLoTiNe
FaTaLGuiLLoTiNe

Registriert seit: 3. Jul 2004
Ort: NRW
55 Beiträge
 
Delphi XE Enterprise
 
#8

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 12:39
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.
Christian
<< FaTaLGuiLLoTiNe >>
Rhinoceroses don't play games!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 12:41
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.
Markus Kinzler
  Mit Zitat antworten Zitat
sko1

Registriert seit: 27. Jan 2017
577 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#10

AW: Handling Zeitzone Android

  Alt 27. Mär 2018, 13:04
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 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