gpt4 book ai didi

linux - 在 FreePascal 中从 Windows 到 Linux 的时区代码转换

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:02:29 24 4
gpt4 key购买 nike

我有这段代码可以在 Windows 下的 FreePascal 中运行,需要将其转换为 Linux,但我完全不知道时区偏差值:

function DateTimeToInternetTime(const aDateTime: TDateTime): String;
{$IFDEF WIN32}
var
LocalTimeZone: TTimeZoneInformation;
{$ENDIF ~WIN32}
begin
{$IFDEF WIN32}
// eg. Sun, 06 Nov 1994 08:49:37 GMT RFC 822, updated by 1123
Result := FormatDateTime('ddd, dd mmm yyyy hh:nn:ss', aDateTime);
// Get the Local Time Zone Bias and report as GMT +/-Bias
GetTimeZoneInformation(LocalTimeZone);
Result := Result + 'GMT ' + IntToStr(LocalTimeZone.Bias div 60);
{$ELSE}
// !!!! Here I need the above code translated !!!!
Result := 'Sat, 06 Jun 2009 18:00:00 GMT 0000';
{$ENDIF ~WIN32}
end;

最佳答案

这个人有答案:http://www.mail-archive.com/fpc-pascal@lists.freepascal.org/msg08467.html

因此您需要添加 uses 子句:

uses unix,sysutils,baseunix

保存时间/时区的变量:

 var
timeval: TTimeVal;
timezone: PTimeZone;

..并获得“向西分钟”。

{$ELSE}
Result := FormatDateTime('ddd, dd mmm yyyy hh:nn:ss', aDateTime);
TimeZone := nil;
fpGetTimeOfDay (@TimeVal, TimeZone);
Result := Result + 'GMT ' + IntToStr(timezone^.tz_minuteswest div 60);
{$ENDIF ~WIN32}

关于linux - 在 FreePascal 中从 Windows 到 Linux 的时区代码转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/961953/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com