Delphi - эквивалент C# метода DateTime.Now.Ticks - PullRequest
0 голосов
/ 05 мая 2020

Мне нужно узнать значение тиков с помощью TSystemTime в delphi. Поскольку я могу получить то же значение в c# через DateTime.Now.Ticks. Итак, я ищу функцию или способ найти значение тиков с помощью TSystemTime.

1 Ответ

1 голос
/ 06 мая 2020

Если у вас есть TSystemTime, самый простой способ сделать это - преобразовать его в TFileTime и затем добавить смещение. Это получит значение, которое будет соответствовать значению c# DateTime.Ticks одновременно.

function TSystemTimeToCSharpTicks(sTime: TSystemTime): UInt64;
var
  fTime: TFileTime;
begin
  SystemTimeToFileTime(sTime, fTime); //Should check if it returns an error.
  //Result := UInt64(fTime); Not too sure how safe this is depending on the architecture.
  Result := (UInt64(fTime.dwHighDateTime) shl 32) + UInt64(ftime.dwLowDateTime);
  Result := Result + 504911232000000000;
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...