Показать сообщение отдельно
  #1  
Старый 28.05.2013, 20:28
SubbSer SubbSer вне форума
Прохожий
 
Регистрация: 28.05.2013
Сообщения: 3
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Как обработать такое время с точностью до миллесекунд

Как обработать дату вида: 2013-05-13 10:04:48.415 PM

Использую следующий код:

1: DateSeparator:='-';
2: ShortDateFormat:='yyyy-mm-dd hh:mm:ss.zzz AM/PM';
3: Date:=StrToDateTime(2013-05-13 10:04:48.415 PM);
4: Memo1.Lines.Add(DateTimeToStr(Date));
5: Memo1.Lines.Add(FloatToStr(Date));

В Мемо получаю следующий результат:
2013-05-13 10:04:48.000 AM 10:04:48
41407,42

Если в 3-ей строке написать Date:=StrToDateTime(2013-05-13 10:04:48 PM); т.е. убрать миллесекунды, то результат следующий:

2013-05-13 10:04:48.000 PM 22:04:48
41407,92

Время вывелось правильно, но без миллисекунд. В чем причина? Это первая часть вопроса.

StrToDateTime как я понимаю оперирует числами Double, что не позволяет обрабатывать их с точностью до миллисекунд. Как обработать данного вида дату с точностью до миллисекунд??
Ответить с цитированием