Парсинг даты в C
нужно спарсить дату время в следующем формате 2021-10-11T09:00:00+00:00 первое что пришло в голову использовать sscanf есть ли решения понадежней?
Ответы (1 шт):
Автор решения: Sergey
→ Ссылка
Если надо разобрать строку с датой на элементы, то используем strptime(...). Если наооборот, надо создать строку заданного формата, то используем strftime(...).
Пример для обоих вариантов:
#define _XOPEN_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(void) {
struct tm tm;
char buf[255];
memset(&tm, 0, sizeof(struct tm));
strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm);
strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
puts(buf);
exit(EXIT_SUCCESS);
}
Как уже отметил fat-zer, это работает при поддержке POSIX.