Вниз
Скачать: 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-1247149761
Дмитрий С
2009-07-09 18:29
2009.09.06
Как по английски "я сам себе сама" ?


15-1246912210
Юрий
2009-07-07 00:30
2009.09.06
С днем рождения ! 7 июля 2009 вторник


4-1216237260
batya-x
2008-07-16 23:41
2009.09.06
буфер обмена


15-1244637305
nach
2009-06-10 16:35
2009.09.06
C++ to Delphi


15-1247171426
Юрий
2009-07-10 00:30
2009.09.06
С днем рождения ! 10 июля 2009 пятница




   Наверх