The value is a Unix Time, defined as seconds since 1970-01-01T00:00:00,0Z. Important is the Letter Z, you live in Sweden, in consequence you must add 1 hour for StandardDate and 2 hours for DaylightDate to the date. The infos you can get with GetTimeZoneInformation. But you must determine, which Bias (Standard or Daylight) is valid for the date (in this case -60). You can convert the date value with the function below.

 

The Date for 977347109 is 2000-12-20T22:18:29+01:00.

 

Code:

const

UnixDateDelta = 25569; { 1970-01-01T00:00:00,0 }

SecPerMin = 60;

SecPerHour = SecPerMin * 60;

SecPerDay = SecPerHour * 24;

MinDayFraction = 1 / (24 * 60);

 

{Convert Unix time to TDatetime}

 

function UnixTimeToDateTime(AUnixTime: DWord; ABias: Integer): TDateTime;

begin

Result := UnixDateDelta + (AUnixTime div SecPerDay) { Days }

+ ((AUnixTime mod SecPerDay) / SecPerDay) { Seconds }

- ABias * MinDayFraction { Bias to UTC in minutes };

end;

 

{Convert Unix time to String with locale settings}

 

function UnixTimeToStr(AUnixTime: DWord; ABias: Integer): string;

begin

Result := FormatDateTime('ddddd hh:nn:ss', UnixTimeToDateTime(AUnixTime, ABias));

end;

 

{Convert TDateTime to Unix time}

 

function DateTimeToUnixTime(ADateTime: TDateTime; ABias: Integer): DWord;

begin

Result := Trunc((ADateTime - UnixDateDelta) * SecPerDay) + ABias * SecPerMin;

end;

 

procedure TForm1.Button4Click(Sender: TObject);

begin

Label1.Caption := UnixTimeToStr(977347109, -60);

end;

 

 

 

Взято с Delphi Knowledge Base: https://www.baltsoft.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить