Я использую C ++ для разработки системы встреч.
Могу ли я получить некоторую помощь в преобразовании строки в переменную TDateTime.
Вот пример, с которым я хотел бы получить некоторую помощь;
TDateTime appDateTime(2012, 9, 15, 14, 0, 0, 0);
Я сохраняю это в файл (с другими строковыми и логическими значениями). При загрузке в виде строки значение строки:
15.09.2012 14:00:00
Как я могу преобразовать это в переменную TDateTime?
Спасибо
ОБНОВИТЬ
Я пытаюсь создать переменную TDateTime через конструктор, который использует строку. Вот мой код:
string stringTestConstructorDate = "12/05/1990";
TDateTime testConstruct(stringTestConstructorDate);
Я получаю эту ошибку: E2285 Не удалось найти совпадение для ‘TDateTime :: TDateTime (string)’
Как я могу использовать строковую переменную для создания переменной TDateTime?
Вот мой код для второго варианта:
string stringDateToConvert = "17/09/2012 09:00:02 a.m.";
struct tm DateTime;
if (NULL == strptime("17/09/2012 09:00:02 a.m.", "%D %T", &DateTime)) {
printf("strptime() failed.\n");
exit(EXIT_FAILURE);
}
printf("tm_sec = %3d\n", DateTime.tm_sec );
printf("tm_min = %3d\n", DateTime.tm_min );
printf("tm_hour = %3d\n", DateTime.tm_hour);
printf("tm_mday = %3d\n", DateTime.tm_mday);
printf("tm_mon = %3d\n", DateTime.tm_mon );
printf("tm_year = %3d\n", DateTime.tm_year);
Это хорошо работает. Тем не менее, могу ли я получить некоторую помощь в разрешении передачи ‘stringDateToConvert’ в функцию ‘strptime’. В настоящее время я получаю следующую ошибку:
E2034 Не удалось преобразовать строку в const char *
Спасибо
Eсть StrToDateTime
-Функция в SysUtils.
Также есть StrToDateTimeDef
-Функция, которая принимает значение по умолчанию для случая, когда синтаксический анализ не удается.
http://docwiki.embarcadero.com/Libraries/XE4/de/System.SysUtils.StrToDateTimeDef
У обоих из них есть перегрузки, которые принимают TFormatSettings-Object, который может использоваться для предоставления метаданных для анализа дат с определенными форматами локали.
Других решений пока нет …