'23.02.2011 12:34:56' не является допустимой датой и временем

В моем коде я сталкиваюсь с проблемой. Пример кода:

var 
    d1: tdatetime
begin
    d1 := strtodatetime('23/02/2011 12:34:56');
end; 

но это дает ошибку:

'23.02.2011 12:34:56' не является допустимой датой и временем

Что случилось с тем, что я делаю?

16
задан Donal Fellows 25 July 2010 в 19:39
поделиться

2 ответа

функция StrToDateTime использует ShortDateFormat и DateSeparator для преобразования части даты и LongTimeFormat и TimeSeparator ] к временной части. поэтому строка должна соответствовать этим переменным, чтобы преобразовать строку в TDateTime. вместо этого вы можете использовать StrToDateTime с параметром TFormatSettings , чтобы проанализировать вашу строку.

 function StrToDateTime(const S: string; const FormatSettings: TFormatSettings): TDateTime; 

проверьте этот образец

Var
StrDate : string;
Fmt     : TFormatSettings;
dt      : TDateTime;
begin
fmt.ShortDateFormat:='dd/mm/yyyy';
fmt.DateSeparator  :='/';
fmt.LongTimeFormat :='hh:nn:ss';
fmt.TimeSeparator  :=':';
StrDate:='23/02/2011 12:34:56';
dt:=StrToDateTime(StrDate,Fmt);
36
ответ дан 30 November 2019 в 15:51
поделиться

Это вызвано тем, что формат даты / времени в вашем коде не соответствует формату даты / времени для ваших языковых настроек.

Из документации (D2009):

Параметр S должен использовать текущий формат даты / времени локали. В США, обычно это ММ / ДД / ГГ ЧЧ: ММ: СС формат. Указание AM или PM как части время не является обязательным, как и секунд. Используйте 24-часовое время (19:45 - это вводится как 19:45, например), если AM или PM не указан.

Если вы используете более старую версию Delphi, для StrToDateTime может потребоваться определенный формат. Из документации (в данном случае D5):

Параметр S должен быть в ММ / ДД / ГГ ЧЧ: ММ: СС формат. Указание AM или PM как часть времени необязательно, как и секунды. Использовать 24-часовое время (19:45 вводится как 19:45, например), если AM или PM не указано.

2
ответ дан 30 November 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: