![]() |
Prüfung, ob aktuelle Zeitzone der deutschen entspricht
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:
Reine Windows-Funktionen bringen mich hier nicht weiter, da ich das auch für iOS und Android brauche. Hat da jemand eine Idee?
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.') 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. |
AW: Prüfung, ob aktuelle Zeitzone der deutschen entspricht
Eine deutsche Zeit ist mir nicht bekannt, eine Mitteleuropäische Zeit bzw. Mitteleuropäische Sommerzeit schon eher :stupid:
Theoretisch sollte es möglich sein mit ![]() ![]()
Delphi-Quellcode:
nur das die
{ Retunrs the time zone identification string. }
property ID: string read DoGetID; { Specifies the display name (localized if possible) of this time zone. } property DisplayName: string read GetDisplayNameForNow; { Current time zone's abbreviation. Non-localized, always specified, and has the form: GMT[+|-HH[:MM]]. } property Abbreviation: string read GetAbbreviationForNow;
Delphi-Quellcode:
eben nicht so ganz identifizierend ist (ich kann mir nicht vorstellen, dass auf einem OS mit Timbuktu-Sprache da auch ein "Mitteleuropäische Zeit" herauskommen würde).
ID
Aktuell gibt es bei mir:
Code:
ID ..........: Mitteleuropäische Zeit
DisplayName .: Mitteleuropäische Zeit Abbreviation : GMT+01 |
AW: Prüfung, ob aktuelle Zeitzone der deutschen entspricht
![]() |
AW: Prüfung, ob aktuelle Zeitzone der deutschen entspricht
Zitat:
|
AW: Prüfung, ob aktuelle Zeitzone der deutschen entspricht
Zitat:
Zitat:
ID: Europa/Berlin Displayname: Mitteleuropäische Normalzeit Und wenn die Systemsprache nicht deutsch ist, kommt sowieso was anderes. Daher halte ich da nicht so viel von Stringvergleichen. Wie im Edit schon geschrieben, funktioniert die Abfrage jetzt bei mir. Interessant wäre, ob zu 2. noch jemand eine Idee hat. |
AW: Prüfung, ob aktuelle Zeitzone der deutschen entspricht
Zitat:
![]() Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz