Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.007 c
15-1247145135
Palladin
2009-07-09 17:12
2009.09.06
Вопросы вида "Когда будет сделано?"


1-1213870475
du_hast
2008-06-19 14:14
2009.09.06
Проблема с закрытием Docking формы


15-1246981094
Дмитрий С
2009-07-07 19:38
2009.09.06
Как оптимальнее организовать оповещения о событиях


2-1246946282
девушка
2009-07-07 09:58
2009.09.06
CommandText does not return a result set


6-1206414704
vegarulez
2008-03-25 06:11
2009.09.06
Подскажите с пингом.




   Наверх