2015-04-22 4 views
1

Как получить текущее время в миллисекундах?Получить текущее время Миллисекунды

Я знаю, что использую Теперь, но мне нужно получить миллисекунды.

var 
    today : TDateTime; 
begin 
    today := Now; 
+2

Люди ниже гадают, потому что ваш вопрос не ясен. Я могу сказать, что это сегодня, 9 утра. Теперь, выражайте мне этот момент * в миллисекундах *. – TLama

+0

Ваш запрос неточен. Миллисекунды относительно какой эпохи? –

+0

Мне нужно сохранить время отклика сервера в миллисекундах, когда ответ сервера, я хочу получить текущее время в мс – Dauezevy

ответ

1

DecodeDateTime примет TDateTime и быть в состоянии разделить его на год, месяц, день, час минуты секунду и миллисекунду.

См. http://www.delphibasics.co.uk/RTL.asp?Name=DecodeDateTime для получения дополнительной информации.

Как только у вас есть отдельные номера, вы можете использовать математику для вычисления текущего миллисекундного счета за полночь.

Var 
    myDate: TDateTime; 
    myYear, myMonth, myDay: Word; 
    myHour, myMin, mySec, myMilli: Word; 

begin 
    myDate := Now; 
    DecodeDateTime(myDate, myYear, myMonth, myDay, myHour, myMin, mySec, myMilli); 
    ShowMessage('Number of milliseconds past midnight = ' + IntToStr(myMilli + (mySec * 1000) + (myMin * 60 * 1000) + (myHour * 60 * 60 * 1000))); 
end; 
3

Используйте DateUtils MilliSecondOfTheDay:

ms := MillisecondOfTheDay(Now); 

Возвращает количество миллисекунд между заданным значением TDateTime и началом того же дня.

Если вы хотите миллисекунды из другого периода времени, есть и другие подобные функции, такие как: MilliSecondOfTheYear, MilliSecondsBetween и т.д.

1

TDateTime является double где 1 день. Константа SecsPerDay объявлена ​​в SysUtils представляет количество секунд в день, так, чтобы получить сейчас в миллисекундах:

todayInMilliseconds := Now * SecsPerDay * 1000.0; 
Смежные вопросы