2015-03-31 2 views
0

У меня возникла проблема при преобразовании строки в TDateTime в FireMonkey на мобильных устройствах.Ошибка преобразования строки в datetime в Delphi FireMonkey XE7

Это всегда дает мне ошибку и не знает, как это сделать.

Я покажу вам, что я делаю:

function StringToDateTime(DateStr: String): TDateTime; 
var 
    FS: TFormatSettings; 
begin 
    result := now; 
    FS:= TFormatSettings.Create; 
    FS.DateSeparator := '-'; 
    FS.DateSeparator := ':'; 
    FS.ShortDateFormat := 'dd-mm-yyyy'; 
    FS.ShortTimeFormat := 'hh:nn:ss'; 
    try 
    Result := StrToDateTime(DateStr, FS); //the format of the string is : 
     // dd-mm-yyyy hh:nn:ss '31-03-2015 9:36:00' 
    except on E: Exception do 
    ShowMessage(e.ToString); 
    end; 

end; 

Исключение дает:

'31 -03-2015 9:36:00' не является действительной датой и временем.

+0

возможно дубликат [Преобразование с StrToDateTime и TFormatSettings не работает] (http://stackoverflow.com/questions/13308472/conversion-with-strtodatetime-and -tformatsettings-does-not-work) –

+2

У вас есть опечатка в коде. Используйте 'FS.TimeSeparator: = ':';' – TLama

ответ

1

Вы настраиваете DateSeparator дважды

FS.DateSeparator := '-'; 
    FS.TimeSeparator := ':'; 
+0

Спасибо, мне стыдно, извините. Я хорошо проанализировал код и не заметил. Извините. – elcharlie

+2

Если вы хотите удалить вопрос, не стесняйтесь делать это. Я не буду возражать :) –

+0

jaja, Спасибо. – elcharlie

Смежные вопросы