C . strptime (...):
struct tm parts = {0};
strptime("2010-10-28T16:23:31", "%Y-%m-%dT%H:%M:%S", &parts);
, . , sscanf (...) :
unsigned int year, month, day, hour, min;
double sec;
int got = sscanf(
"2010-10-28T16:23:31.428226",
"%u-%u-%uT%u:%u:%lf",
&year, &month, &day, &hour, &min, &sec
);
assert(got == 6);