Indy SNTP returnerer uventet dato
Jeg forstår det ikke, SNTP. Jeg forstår ikke altid Indy. Jeg har lavet mig en funktion som skulle give mig datoen fra internettet. Indys SNTP-komponent benyttes og det kører egentlig fint. Problemet er, at kigger jeg på SNTPClient.DateTime, så får jeg en dato i 1947. Synes ikke jeg har anden mulighed end at lægge en masse millisekunder til, så det gør jeg:function GetInternetDate: TDateTime;
var
SNTPClient: TIdSNTP;
begin
SNTPClient := TIdSNTP.Create(nil);
try
SNTPClient.Host := 'dk.pool.ntp.org'; // 'pool.ntp.org';
result := DateOf(IncMilliSecond(SNTPClient.DateTime,2155850554730));
// OutputDebugString(pchar(format('Computer: %s, internet: %s',[DateTimeToStr(now),DateTimeToStr(result)])));
// OutputDebugString(pchar(format('DateDiff: %d, MilliDiff: %d',[DaysBetween(today,result),MilliSecondsBetween(today,result)])));
finally
SNTPClient.Free;
end;
end;
... men er det den rigtige måde?