Probier das mal mit wrap()
Delphi-Quellcode:
function GetCurrentTimeZoneID:
string;
var
LTZPtr: Pointer;
LTimeZone: NSTimeZone;
begin
try
// 1) Pointer aus der Klassen-API holen
LTZPtr := TNSTimeZone.OCClass.localTimeZone;
// 2) In Interface „wrappen“
if LTZPtr <>
nil then
begin
LTimeZone := TNSTimeZone.Wrap(LTZPtr);
// 3) NSString -> Delphi-String
Result := NSStrToStr(LTimeZone.
name);
// IANA-ID, z.B. "Europe/Berlin"
Exit;
end;
// Fallback
Result := TTimeZone.
Local.ID;
except
on E:
Exception do
Result := TTimeZone.
Local.ID;
end;
end;
end.