![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Тупой вопрос!!! [D7, XP]
Varf © (2006-10-24 08:50:00)Гсопода помогите че то голова не работает!!!!
---есть строка типа: 1.09.2006 00:00 (тип Variant)
нужно ее сделать типом TDate вида:1.09.2006
заранее спасибо!!!
Anatoly Podgoretsky (2006-10-24 12:54:00) [1]есть строка типа: 1.09.2006 00:00 (тип Variant)
Тут возможны всякие варианты, поэтому и предложено преобразовать в строку, но тут опять варианты, будет ли в результате строка "1.09.2006 00:00"
Пока для меня вопрос смутный.
Ketmar (2006-10-24 09:45:00) [2]как же я люблю велосипеды! в CDM я дату/время честно разламываю на кусочки руками, и делаю EncodeDateTime(). %-)
Джо (2006-10-24 09:39:00) [3]> [11] Anatoly Podgoretsky © (24.10.06 09:35)
> Ему надо отрезать то что после пробела, а вот сам вопрос
Отрезать не проблема :) Да, в принципе, это даже не нужно, достаточно использовать StrToDate.
>
> в частном решается, если
> известен точный формат и он гарантируется.
Формат был описан в [0]. А гарантироваться он обязан в любом случае — что в случае использования готовой библиотечной функции StrToDate[Time], что в случае изготовления самописного парсера, не так ли?
Anatoly Podgoretsky (2006-10-24 09:35:00) [4]Ему надо отрезать то что после пробела, а вот сам вопрос
> нужно ее сделать типом TDate
В общем случае не имеет решения, в частном решается, если известен точный формат и он гарантируется.
Джо (2006-10-24 09:14:00) [5]> [9] Anatoly Podgoretsky © (24.10.06 09:12)
Подход не системный.
Обоснуйте.
Anatoly Podgoretsky (2006-10-24 09:12:00) [6]
> Лучше используй подход из поста [4].
У которого могут быть неожиданные побочные эффекты. Подход не системный.
Varf (2006-10-24 09:11:00) [7]да да спасибо
Anatoly Podgoretsky (2006-10-24 09:11:00) [8]Это не строка, но если преобразовать к строке, то далее задача простая
StrLength(S, Pos(' ', S) - 1)
Джо (2006-10-24 09:08:00) [9]> [5] Varf (24.10.06 09:03)
Лучше используй подход из поста [4].
Varf (2006-10-24 09:03:00) [10]Спасибо всем!!!
я про это не знал:
DateSeparator := '.';
TimeSeparator := ':';
Джо (2006-10-24 09:02:00) [11]>
>
> [3] ЮЮ © (24.10.06 08:57)
> 1.09.2006 может быть как 1 сентября, так и 9 января.
Что ж, тогда так:
var
V: Variant;
Dt: TDate;
...
V := '1.09.2006 00:00';
ShortDateFormat := 'd.mm.yyyy';
Dt := StrToDateTime(V);
ЮЮ (2006-10-24 08:57:00) [12]1.09.2006 может быть как 1 сентября, так и 9 января.
Джо (2006-10-24 08:55:00) [13]
var
V: Variant;
Dt: TDate;
...
V := '1.09.2006 00:00';
DateSeparator := '.';
TimeSeparator := ':';
Dt := StrToDateTime(V);
ЮЮ (2006-10-24 08:55:00) [14]"разобрать" стоку на составляющие: Copy
преобразовать к целым: StrToInt
преобразовать к TDate: EncodeDateTime