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.

È stato utile?

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.1999it 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 e DateSeparator 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.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top