1. Ich brauche für unsere App eine Möglichkeit, herauszufinden, ob das Gerät aktuell in der deutschen Zeitzone unterwegs ist.
Ich habe bisher folgenden Code. Allerdings funktioniert der nicht, wenn man z.B. die afrikanische Zeitzone Windhuk (GMT+1) einstellt, bei denen aber Sommerzeit und Standardzeit mit der unseren vertauscht sind (weil Südhalbkugel).
Delphi-Quellcode:
if TTimeZone.Local.IsStandardTime(EncodeDate(2016, 1, 1)) and TTimeZone.Local.IsDaylightTime(EncodeDate(2016, 7, 1)) and
((TTimeZone.Local.IsStandardTime(Now) and (TTimeZone.Local.UtcOffset.TotalMinutes = 60)) or (TTimeZone.Local.IsDaylightTime(Now) and (TTimeZone.Local.UtcOffset.TotalMinutes = 120))) then
ShowMessage('Zeitzone entspricht deutscher Zeitzone.')
else
ShowMessage('Zeitzone entspricht NICHT der deutschen Zeitzone.')
Reine Windows-Funktionen bringen mich hier nicht weiter, da ich das auch für iOS und Android brauche. Hat da jemand eine Idee?
EDIT: Fehler gefunden, da fehlte eine Klammer. Problem gelöst (hab den Quellcode oben angepasst)
2. Gibt es eigentlich die Möglichkeit, ein bestimmtes Datetime, welches in deutscher Zeit ist, in UTC umzuwandeln, sich das Gerät aber in irgendeiner beliebigen Zeitzone aufhält?
Beispiel: 01.01.2000 10:00 Uhr deutsche Zeit soll in UTC umgewandelt werden, das Gerät ist aber bspw. in UTC+5.
Man könnte zwar einfach UTC+1/+2 annehmen, dann müsste ich aber auch wissen, ob das Datum in deutscher Sommerzeit ist oder nicht.