So nun noch mal die drei Funktionen zur Ausgabe von GMT-Strings, funktionstüchtig ab Windows XP.
Im uses Abschnitt muss libtar hinzugefügt werden!
Code: Alles auswählen
const
tsRFC = 'ddd, dd mmm yyyy hh:nn:ss "GMT"';
tsISO = 'yyyy"-"mm"-"dd"T"hh":"nn":"ss"+00:00"';
function FileTimeToGMT(const AFilename: string; const frmtstr: string = tsRFC): string;
var
fs: TFormatSettings;
dt: TDateTime;
begin
dt := FileTimeGMT(AFilename);
fs := DefaultFormatSettings;
result := FormatDateTime(frmtstr, dt, fs);
end;
function NowToGMT(const frmtstr: string = tsRFC): string;
var
fs: TFormatSettings;
SystemTime: TSystemTime;
dt: TDateTime;
begin
// result := DateTimeToGMT(Now(), frmtstr);
fs := DefaultFormatSettings;
GetSystemTime(SystemTime);
dt := SystemTimeToDateTime(SystemTime);
result := FormatDateTime(frmtstr, dt, fs);
end;
function TzSpecificLocalTimeToSystemTime(
lpTimeZoneInformation: PTimeZoneInformation;
lpLocalTime, lpUniversalTime: PSystemTime): BOOL; stdcall; external 'kernel32.dll';
function DateTimeToGMT(const ALocalTime: TDateTime; const frmtstr: string = tsRFC): string;
var
fs: TFormatSettings;
TZInfo: TTimeZoneInformation;
LocalTime, SystemTime: TSystemTime;
dt: TDateTime;
begin
fs := DefaultFormatSettings;
GetTimeZoneInformation(TZInfo);
DateTimeToSystemTime(ALocalTime, LocalTime);
TZSpecificLocalTimeToSystemTime(@TZInfo, @LocalTime, @SystemTime);
dt := SystemTimeToDateTime(SystemTime);
result := FormatDateTime(frmtstr, dt, fs);
end;