stringa di pascal ad oggi
-
19-09-2019 - |
Domanda
Qualcuno mi può dire cosa c'è di sbagliato in questo pezzo di codice:
ShortDateFormat := 'dd/mm/yyyy';
j:=StrToDate('05/05/1999');
Continuo a ricevere
An unhandled exception occurred at $000000000042FA33 :
EConvertError : Invalid date format
sto usando fpc.
Soluzione
Inserire questo nel codice prima della chiamata StrToDate
:
Writeln(DateTimeToStr(Date));
Se l'output non contiene /
ma un altro personaggio, è necessario utilizzare questo carattere come separatore nella stringa.
Sul mio sistema questo dà: 11.11.2009
. Se Ho quindi utilizzare 05.05.1999
it funziona.
Altri suggerimenti
qui (parafrasato) :
StrToDate non usa ShortDateFormat per controllare il formato effettivo; usa solo per determinare l'ordine di y, m, d e quindi utilizza DateSeparator per determinare l'effettivo carattere separatore data.
Quindi quello che vi serve è:
ShortDateFormat := 'd/m/y';
DateSeparator := '/';
j:=StrToDate('05/05/1999');
Si consiglia di pensare a uno:
- Salvataggio
ShortDateFormat
eDateSeparator
prima di fare questo in modo da poterli ripristinare (che stanno impostato inizialmente basati sul vostro locale); o - utilizzando date in base alle impostazioni attuali, e non modificare questi due valori a tutti.