![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
EncodeDate vs. StrToDate
FS © (2009-03-30 16:45:00)В каком случае будет работать быстрее?
dt1 := StrToDateTime(Copy(field_value, 7, 4) + DateSeparator +
Copy(field_value, 4, 2) + DateSeparator + Copy(field_value, 1, 2)
+ ' ' + Copy(field_value, 12, 2) + TimeSeparator + Copy(field_value, 15, 2));
или
dt1 := EncodeDateTime(StrToInt(Copy(field_value, 7, 4)),
StrToInt(Copy(field_value, 4, 2)) , StrToInt(Copy(field_value, 1, 2)),
StrToInt(Copy(field_value, 12, 2)), StrToInt(Copy(field_value, 15, 2)),
0, 0);
Anatoly Podgoretsky (2009-03-31 07:39:00) [1]> Германн (31.03.2009 1:12:18) [18]
Правильно, ни к чему хоронить неубитых медведей.
Германн (2009-03-31 01:12:00) [2]
> MsGuns © (31.03.09 00:51) [17]
>
> >Eraser © (30.03.09 18:03) [12]
> >если оно сейчас и работает, то в будущем обязательно получите
> грабли, >если не вы конкретно, то последователи. и все равно
> прийдется >переделывать.
>
> Все там будем ;(
Кроме меня, АП и Кэтмара!
:)
MsGuns (2009-03-31 00:51:00) [3]>Eraser © (30.03.09 18:03) [12]
>если оно сейчас и работает, то в будущем обязательно получите грабли, >если не вы конкретно, то последователи. и все равно прийдется >переделывать.
Все там будем ;(
Anatoly Podgoretsky (2009-03-30 19:18:00) [4]> Игорь Шевченко (30.03.2009 17:59:11) [11]
А если в килограммах?
Eraser (2009-03-30 18:53:00) [5]> [14] Игорь Шевченко © (30.03.09 18:33)
пока работает )
Игорь Шевченко (2009-03-30 18:33:00) [6]
> из опыта могу сказать, что про существование функции StrToDateTime
> (и её произволных) можно смело забыть. если оно сейчас и
> работает, то в будущем обязательно получите грабли, если
> не вы конкретно, то последователи. и все равно прийдется
> переделывать.
Странно. Работает уже лет 8. Что-то я сделал не так в самом начале, очевидно
FS (2009-03-30 18:13:00) [7]Нашел один из вариантов как можно сделать:
GetLocaleFormatSettings(LOCALE_USER_DEFAULT, FormatSettings);
FormatSettings.DateSeparator := '.';
FormatSettings.TimeSeparator := ':';
FormatSettings.ShortDateFormat := 'dd.mm.yyyy';
FormatSettings.LongTimeFormat := 'hh:nn:ss';
dt1 := StrToDateTime('30.03.2009 16:44:12', FormatSettings);
Eraser (2009-03-30 18:03:00) [8]> [0] FS (30.03.09 16:45)
из опыта могу сказать, что про существование функции StrToDateTime (и её произволных) можно смело забыть. если оно сейчас и работает, то в будущем обязательно получите грабли, если не вы конкретно, то последователи. и все равно прийдется переделывать.
Игорь Шевченко (2009-03-30 17:59:00) [9]
> А померять?
ну не всегда удобно
Правильный$Вася (2009-03-30 17:10:00) [10]
> FS (30.03.09 17:06) [9]
полмиллиона циклов для случайных дат для каждого случая и сравнить
FS (2009-03-30 17:06:00) [11]
> А померять?
Т.е.
Anatoly Podgoretsky (2009-03-30 17:02:00) [12]> FS (30.03.2009 16:56:04) [4]
А померять?
Anatoly Podgoretsky (2009-03-30 17:02:00) [13]> Юрий Зотов (30.03.2009 16:54:02) [2]
А что тогда кодировать?
Сергей М. (2009-03-30 16:59:00) [14]
StrToFateTime(field_value)
FS (2009-03-30 16:57:00) [15]
> А в каком формате представлены данные в field_value ?
dd.mm.yyyy hh:mm
FS (2009-03-30 16:56:00) [16]Игорь Шевченко, Юрий Зотов
А если все-таки нужно преобразовывать строку что посоветуете?
Сергей М. (2009-03-30 16:55:00) [17]Оба случая не фонтан.
А в каком формате представлены данные в field_value ?
Уж не DD.MM.YYYY HH:MM ли ?
Юрий Зотов (2009-03-30 16:54:00) [18]Быстрее (и проще) будет использование поля типа TDateTime, а не строкового.
Игорь Шевченко (2009-03-30 16:52:00) [19]в обоих медленно