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

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

Как преобразовать строку в дату. [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 г.') не фурычит


Наверх

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