Уважаемые программисты!
Помогите разобраться с такой проблемой, в коде программы пытаюсь перевести строку типа "Fri Aug 2005" в переменную TDateTime, программа выводит ошибку EConvertError. Причем если переводить дату в строку подобного вида, все работает. Привожу пример кода:
var FormatSettings: TFormatsettings;
d: string;
t: TDateTime;
begin
FormatSettings.ShortDateFormat:='ddd mmm yyyy';
d:=DateTimeToStr(date,FormatSettings); <- эта строка работает
t:= StrToDateTime(d, FormatSettings); <- эта строка выводит исключение.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
10-06-2005 04:18
Теперь мне понятно :) Спасибо вам огромное, а то я думала, что все же проблема у меня, то что число в начале не поставила, это просто заработалась уже, сокращала формат, чтобы определить что лишнее.
Значит обратная конвертация может произойти только в формате "dd mm yyyy hh:aa:ss". На том и порешим, буду писать отдельную функцию :)
09-06-2005 09:47 | Комментарий к предыдущим ответам
Присоединяюсь к Shabal, и хочу добавить, что в принципе с указанием числа месяца информации в строке уже достаточно для обратного преобразования, и при желании можно написать соответствующую функцию самому; а у программистов из Borland до этого просто руки не дошли, несмотря на многообещающую симметричность в названии их функций.
09-06-2005 08:50 | Комментарий к предыдущим ответам
Олеся, дело в том, что даже если указать день месяца, то текст в формат даты преобразован не будет. Будут преобразовываться только короткие форматы представления даты, да еще и согласованные с DateSeparator.
На самом деле, проблема осталась.
"09 Thu Jun 2005" is not a valid date and time.
Сразу оговорюсь, краткие названия месяцев и дней недели я ввела в массивы ShortMonthNames и ShortDayNames объявленной переменной FormatSettings вручную.
А подумать, прежде чем вопрос задавать? Какую информацию содержит ваша строка о дате? То, что это пятница в августе 2005-го года. Так пятниц в августе как минимум четыре штуки. Откуда компьютеру знать, какую из них вы имеете ввиду?
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.