IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> TDateTime
сообщение
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Помогите строковое представление времени '15:06:23.456' перевести в TDateTime. StrToTime на миллисекунды почему-то бушует.

И как можно из TDateTime получить количество миллисекунд именно времени, кроме как разбитием DecodeTime(myDate, myHour, myMin, mySec, myMilli); и потом суммой произведений?

Сообщение отредактировано: sheka -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
StrToTime на миллисекунды почему-то бушует.
StrToTime использует формат, заданный в LongTimeFormat...

Выстави перед преобразованием
LongTimeFormat := 'hh:nn:ss.zzz';

, не будет бушевать.

Цитата
И как можно из TDateTime получить количество миллисекунд именно времени

Uses DateUtils;
// ...
var ms: Word;
ms := MillisecondOf(Now);
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Неа smile.gif Я уже так пробовал - не хочет.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Показывай, как пробовал, у меня отработало только что...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Делфи 7 и 2010 пишут на вот это
  LongTimeFormat := 'hh:mm:ss.zzz';
DT := StrToTime('11:11:11.111');
вот такую кляузу:Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Я не сказал 'hh:mm:ss.zzz', я сказал 'hh:nn:ss.zzz'...

mm - это обозначение месяца для данной функции.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Все равно.

Добавлено через 3 мин.
procedure FillPausesTime;
var
DT: TDateTime;
begin
LongTimeFormat := 'hh:nn:ss.zzz';
DT := StrToTime('11:11:11.111');
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Очень интересно...



Эскизы прикрепленных изображений
Прикрепленное изображение
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


у меня тоже ошибка wacko.gif


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






blink.gif TimeSeparator проверьте, он должен содержать ':'. Других причин для вылета StrToTime просто не существует.

Добавлено через 3 мин.
А, вот еще что... Проверьте вот такое:
 DT := StrToTime('11:11:11,111');

, в русскоязычных системах DecimalSeparator - запятая, так и используйте запятую в строке со временем. Или меняйте не только LongTimeFormat, но и DecimalSeparator...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


да да, несчастная запятая
good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Спасибо! До DecimalSeparatorа никогда бы не догадался)

А вот типа такого:
function MS(DT: TDateTime): Longint;
begin
result := MillisecondOf(DT) + 1000 * (SecondOf(DT) + 60 * (MinuteOf(DT) + 60 * HourOf(DT)));
end;
Встроенного ничего нет? smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






Насколько я понимаю, это аналог
function MilliSecondOfTheDay(const AValue: TDateTime): LongWord;

- функция возвращает количество миллисекунд от начала дня (полуночи) до времени, хранящегося в AValue...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Оно!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.04.2024 18:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name