Einzelnen Beitrag anzeigen

bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

Prüfung, ob aktuelle Zeitzone der deutschen entspricht

  Alt 11. Feb 2016, 11:54
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.

Geändert von bra (11. Feb 2016 um 12:07 Uhr)
  Mit Zitat antworten Zitat