Имею столбец дат в формате 'dd-mmm-yyyy hh":"nn":"ss"."z', то есть, месяц русскими тремя буквами. Имею желание конвертировать их (даты) в тип TDateTime. Пишем такой тестик:
- Код: Выделить всё
procedure TfmMain.Button1Click(Sender: TObject);
var
fs : TFormatSettings;
dt : TDateTime;
begin
fs.ShortDateFormat := 'dd-mmm-yyyy hh":"nn":"ss"."z';
fs.ShortMonthNames[5] := 'тыры';
fs.ShortMonthNames[6] := 'пыры';
str := DateTimeToStr(Now, fs);
ShowMessage(str);
dt := StrToDateTime(str, fs);
ShowMessage(DateTimeToStr(dt));
end;
что, вообще-то, ожидаемо, ибо справка гласит:"Проект <Тыры-пыры> вызвал класс исключения 'EConvertError' с сообщением:
"02-пыры-2015 16:27:21.484" is not a valid date format
По адресу 44EA03"
То есть, дата должна быть, хоть тресни, но числами. Хотя даже замена mmm на mm помогает слабо, приходится играться с DateSeparator."For the date part, the same restrictions apply as for the StrToDate function: The Date must consist of 1 to three numbers,separated by the DateSeparator character."
Собственно, вопрос: Известен ли кому вменяемый способ извлечь дату и время из строки, где часть данных представлена текстом (месяц, день недели, GMT+5 и прочие подобные варианты) стандартными средствами без написания собственных парсеров?
Спасибо за внимание.