J'ai récemment eu des problèmes avec la conversion de date. Certains postes de travail sur lesquels mon application s'exécute ne convertissent pas la chaîne correctement.Quel est le format de date utilisé par VarToDateTime (VarDateFromStr)?
J'ai suivi le problème jusqu'à VarDateFromStr qui ne semble pas vérifier LOCALE_SSHORTDATE pour effectuer la conversion. Je me demandais si quelqu'un savait ce qu'il a vérifié pour la conversion. Ou est-ce que le comportement différent n'est lié qu'à une version différente de 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: On m'a dit que le changement de format de date courte (dans le panneau de commande) de 'dd-MM-AAAA' pour tout et retour à 'dd-MM-AAAA' fixe le problème. Je dois encore vérifier cela.
EDIT2: Kindda a oublié de mentionner que le problème n'a été confirmé que sur WinXP SP3.
Je vais juste ajouter à cela depuis que je suis tombé dessus. Veillez à définir également le caractère séparateur de date. Sinon, vous tomberez aux Pays-Bas et dans d'autres pays. – mj2008
mj2008, bon point. – RRUZ
Eh bien, ShortDateFormat de VAR_LOCALE_USER_DEFAULT est aussi 'jj-MM-aaaa'. Et les problèmes ne viennent pas * seulement * de mon code, mais de DevExpress, TClientDataset, InfoPower ... –