Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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]

в обоих медленно


Наверх

Титульная страница Поиск, карта сайта Написать письмо