Как конвертировать строку во время?

Как конвертировать строку вида DD/MM/YYYY в дату, чтобы вернуло -1 в случае неудачи? Или как проверить, является ли строка вида DD/MM/YYYY существующей датой?


Ответы (1 шт):

Автор решения: Sergey

Как конвертировать строку вида DD/MM/YYYY в дату

Для этого существуют две функции:

  1. Функция strptime() является конвертирующей функцией, дополняющей strftime(3): она преобразует символьную строку, на которую указывает s, сохраняя значения в структуре tm (описывает время в виде компонент, broken-down time) согласно формата, заданного в format.

Если strptime() не может найти все соответствия строке формата, то возникает ошибка и возвращается значение NULL.

  1. Функция getdate() преобразует строковое представление даты и времени из буфера, на который указывает string в разделённое на компоненты время. Разделённое время сохраняется в структуре tm и указатель на неё возвращается в качестве результата. Структура tm находится в статической области и, таким образом, будет перезаписана при следующих вызовах getdate().

При успешном выполнении getdate() возвращает указатель на struct tm. В противном случае возвращается NULL

→ Ссылка