В последнее время у меня были проблемы с преобразованием дат. Некоторые рабочие станции, на которых запущено мое приложение, неправильно преобразовывают строку в дату.
Я отследил проблему до VarDateFromStr, который, кажется, не проверяет LOCALE_SSHORTDATE, чтобы выполнить преобразование. Мне было интересно, если бы кто-нибудь знал, что он проверял на преобразование. Или другое поведение связано только с другой версией DLL?
GetLocaleStr(GetThreadLocale, LOCALE_SSHORTDATE, 'm/d/yy'); // returns 'dd-MM-yyyy'
FormatDateTime('dd-MM-yyyy', VarToDateTime('05-11-2010')); //returns '11-05-2010'
EDIT:
Мне сказали, что изменение формата короткой даты (на панели управления) с «dd-MM-гггг» на независимо от и обратно на «дд-мм-гггг» решило проблему. Мне все еще нужно это проверить.
EDIT2: Kindda забыл упомянуть, проблема была подтверждена только в WinXP SP3.