У меня есть ряд дат строк в формате: «30-05-2001»Формат даты в C++
string date1 = "30-05-2001";
Я хотел бы разобрать дату в день, месяц, год. Теперь просто сделать это будет просто вызов функции sscanf. Но я хотел бы исследовать другие possiblilties и от поиска в Интернете следующих функции от time.h было рекомендовано:
char *strptime(const char *buf, const char *format, struct tm *tm);
Есть ли кто-нибудь есть опыт использования этой функции? Некоторым кратким примером может быть очень полезно.
Спасибо!
Взгляните на [Boost.Date_Time] (http://www.boost.org/doc/libs/1_43_0/doc/html/date_time/examples.html#date_time.examples.dates_as_strings). Из всего лишь беглого взгляда я не вижу, как заставить работать формат США. –
Используйте для этого простое регулярное выражение. – anno
Я бы предложил объект std :: istringstream в пользу sscanf(), если вы сделали это именно так. strptime() не входит в стандарт ISO/, поэтому не поддерживается повсеместно. –
Clifford