В последнее время у меня проблемы с преобразованием даты. Некоторые рабочие станции, на которых работает мое приложение, не корректно конвертируют строку в дату.Какой формат даты используется VarToDateTime (VarDateFromStr)?
Я отследил проблему до 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: Я сказал, что изменение формата короткие даты (в панели управления) от «ДД-ММ-ГГГГ», чтобы независимо и обратно «ДД-ММ-ГГГГ» фиксированной проблема. Я все еще должен это проверить.
EDIT2: Kindda забыл упомянуть, проблема была подтверждена только на WinXP SP3.
Я просто добавлю к этому, так как я упал на него. Обязательно также задайте символ разделителя даты. В противном случае вы попадете в Нидерланды и в другие страны. – mj2008
mj2008, хорошая точка. – RRUZ
Ну, ShortDateFormat VAR_LOCALE_USER_DEFAULT также является «dd-MM-yyyy». И проблемы не * только *, исходящие из моего кода, но из DevExpress, TClientDataset, InfoPower ... –