Firemonkey : UTC és UTC offset lekérdezése

Firemonkey : UTC és UTC offset lekérdezése
2020-05-20T13:59:36+02:00
2020-05-21T22:59:06+02:00
2022-10-15T21:16:29+02:00
Stella_209
A windows API készen ad TimeZone információkat: pl. a világidő (UTC) vagy a helyi időből kalculáló időkorrekcióra (UTC offset). Nálunk a világidő = Zóna idő - 1 óra. Nyári időszámítás esetén : Zóna idő - 2 óra.

A kérdésem az, hogyan lehet ezt egy mobil applikációban lekérdezni?
A zóna idő ugye adódik a Now() függvényhívással. Hogyan kapom meg ebből az UTC-t ill. az ép aktuális UTC offset-et android (FMX) mobilon futó app-ban?
Mutasd a teljes hozzászólást!
A System.DateUtils.DateToISO8601 az UTC-t adja vissza.
Pl: DateToISO8601(Now, False)  => 2020-05-20T14:57:08.054+02:00
System.DateUtils.DateToISO8601
Mutasd a teljes hozzászólást!

  • AlterEgo_2: Felvetésed kiindulásnak sokat segített. Ennek ellenére, hogy függvény kényelmesen használható legyen, ki kellett dolgoznom egy függvényt, ami a string válaszból kiveszi az UTC Offset-et numerikus formában.
    A teszteléshez az androidos formra elhelyeztem egy TTimeEdit komponenst, aminek az OnChange eseményében vizsgálom:

    procedure TForm1.TimeEdit1Change(Sender: TObject); var k,korr : integer; ut : TDateTime; begin korr := GetUTCOffset(now); Label1.Text := inttostr(korr); ut := now-korr/24; Label2.text := FormatDateTime('hh:nn:ss',ut); end; function GetUTCOffset(d : TDateTime): integer; var uts: string; ks : string; k,korr : integer; begin Result := 0; uts:=DateToISO8601(d, false); k := AnsiPos('+',uts); ks := Copy(uts,Length(uts)-5,3); Result := strtoint(ks); end;
    Köszönöm a segítségedet!
    Mutasd a teljes hozzászólást!
  • Nem tudom, számít-e, de nem mindenhol egész óra az offset. Van, ahol annak csak tört része...

    (Megj:A függvényedben (is) feleslegesen (?) deklaráltad a k-t.)
    Mutasd a teljes hozzászólást!
  • Igaz. Eredetileg a fgv-ben volt a kiíratás is. Később döntöttem úgy, hogy fekete dobozzá alakítom és bizony nagy örömömben 1-2 felesleges deklaráció ott maradt. De, nem sok vizet zavarnak. Kiviszem.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd