![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как преобразовать строку в дату. [D7, XP]
TNK © (2012-02-15 10:55:00)Здравствуйте ! На вашем сайте нашла пример - см. ниже . Мне нужно преобразовать строку <'6-Apr-1998'> в дату --> <06.04.1998> .
Когда пытаюсь пробовать пример (см. ниже) , появляется ошибка в каждой строке примера - <Invalid variant conversion> . В чем же причина ?
Пример с сайта :
Как преобразовать строку в дату.
Функция StrToDate преобразует только числа, поэтому, если у Вас месяцы в виде имён, то прийдётся использовать VarToDateTime.
Пример:
var
D1, D2, D3 : TDateTime;
begin
D1 := VarToDateTime('December 6, 1969');
D2 := VarToDateTime('6-Apr-1998');
D3 := VarToDateTime('1998-Apr-6');
ShowMessage(DateToStr(D1)+' '+DateToStr(D2)+' '+
DateToStr(D3));
end;
Anatoly Podgoretsky (2012-02-15 13:02:00) [1]> TNK (15.02.2012 10:55:00) [0]
Пиши свою функцию, что бы не зависить от локалей.
Inovet (2012-02-15 11:12:00) [2]> [0] TNK (15.02.12 10:55)
Локаль русская?
Омлет (2012-02-15 11:12:00) [3]В русской локали Apr = Апр
D2 := VarToDateTime('6-Апр-1998');
MBo (2012-02-15 11:10:00) [4]Caption := DateTimeToStr(VarToDateTime('15 февраля 2012'));
работает, т.к. вызов функции приводит к
VarDateFromStr(S, VAR_LOCALE_USER_DEFAULT, 0, Result);
Правда, попытка добавить "г." (у меня в настройках полная дата выглядит как '15 февраля 2012 г.') не фурычит