Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.06;
Скачать: CL | DM;

Вниз

Формат даты   Найти похожие ветки 

 
cyber-pilot   (2009-07-07 16:11) [0]

При запуске программы я задаю формат даты с помощью переменной ShortDateFormat и DateSeparator:

ShortDateFormat := "dd.MM.yyyy";
DateSeparator := ".";


И все работает хорошо. Но если после запуска программы в "Панели управления" -> "Язык и региональные стандарты" поменять формат даты например на такой dd/MM/yy,
то при конвертации строк в даты возникают ошибки, например здесь:
vDate := StrToDate("20.06.2009");

выдается ошибка ""20.06.2009" is not a valid date."

Как сделать, чтобы формат даты был жестко заданным или как перехватить событие изменения формата даты в системе?


 
Anatoly Podgoretsky ©   (2009-07-07 16:15) [1]

Второй, перегруженый формат функции.


 
cyber-pilot   (2009-07-07 16:32) [2]


> Anatoly Podgoretsky ©   (07.07.09 16:15) [1]
>
> Второй, перегруженый формат функции.


Типа вот так:

function StrToDate(const S: String): TDate;
begin
 ShortDateFormat := "dd.MM.yyyy";
 DateSeparator := ".";
 Result := SysUtils.StrToDate(S);
end;


А есть какой-нибудь другой способ, а то тут лишние операции выполняются. Хоть и не очень заметно, но неприятно.


 
Юрий Зотов ©   (2009-07-07 16:37) [3]

Если не делать ничего, то автоматически будут использованы системные установки. Что и требуется.


 
cyber-pilot   (2009-07-07 16:46) [4]


> Юрий Зотов ©   (07.07.09 16:37) [3]


В том то и проблема. Системные установки почему-то иногда меняются. Либо сами пользователи меняют, что вряд ли, либо какие-то программы.


 
clickmaker ©   (2009-07-07 16:47) [5]

> либо какие-то программы


> При запуске программы я задаю формат даты с помощью переменной
> ShortDateFormat и DateSeparator:
>
> ShortDateFormat := "dd.MM.yyyy";
> DateSeparator := ".";


:)


 
cyber-pilot   (2009-07-07 17:11) [6]


> clickmaker ©   (07.07.09 16:47) [5]


Ничего смешного, такой способ устанавливает формат даты только внутри программы. Системный не трогает.


 
clickmaker ©   (2009-07-07 17:22) [7]

> [6] cyber-pilot   (07.07.09 17:11)

ну, у программистов не на Дельфи может не быть под рукой такой удобной переменной ShortDateFormat.
Вот и меняют системный )


 
Плохиш ©   (2009-07-07 17:41) [8]


> cyber-pilot   (07.07.09 16:11)
>
>

Application.GetFormatSettings := false;


 
Плохиш ©   (2009-07-07 17:41) [9]


> GetFormatSettings

читать как UpdateFormatSettings :-)))


 
cyber-pilot   (2009-07-07 17:58) [10]


> Плохиш ©   (07.07.09 17:41) [9]


Спасибо! Работает!!!



Страницы: 1 вся ветка

Текущий архив: 2009.09.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
15-1246624006
Бисовецкий Андрей
2009-07-03 16:26
2009.09.06
Помогите найти правильное решение баз данных. ПОМОГИТЕ СРОЧНО!!


2-1245070048
pest
2009-06-15 16:47
2009.09.06
программно вырезать указанный файл в буфер обмена


2-1246712483
Incognito
2009-07-04 17:01
2009.09.06
Как сделать Combobox и DateTimePicker только readonly


2-1246805599
LexXL
2009-07-05 18:53
2009.09.06
dll как клиент и сервер


15-1247003708
Petr V. Abramov
2009-07-08 01:55
2009.09.06
Всем поклонникам "Любэ" посвящается :)