我不明白,为什么这不起作用? PS:我从谷歌中找到了这段代码!
问题:我不知道它为什么会起作用?这是否也考虑了时区?!
1 #include<stdio.h>
2 #include <stdlib.h>
3 #include <string>
4 #include <time.h>
5 int main()
6 {
7 std::string text("10/10/2013 14:01:00");
8 const char* nptr = text.c_str();
9 char* endptr = NULL;
10 time_t seconds_from_epoch = strtoul(nptr, &endptr, 0);
11 if (secs != 0)
12 printf("Secs: %ld\n", secs);
13 if (*nptr != '\0' && endptr && *endptr == '\0') {
14 printf("Secs: %ld\n", secs);
15 } else {
16 printf("Unable to convert\n");
17 }
18 }
答案 0 :(得分:0)
这是错误的假设。
这就是我的做法:
21 printf("************************\n");
22 int day, month, yr, hr, min, sec, tzone;
23 char* more = (char *)nptr;
24 month = strtol(more, &more, 10);
25 day = strtol(more+1, &more, 10);
26 yr = strtol(more+1, &more, 10);
27 hr = strtol(more+1, &more, 10);
28 min = strtol(more+1, &more, 10);
29 sec = strtol(more+1, &more, 10);
30 tzone = strtol(more+1, &more, 10);
31
32 printf("Month: %d, Day: %d, Year: %d, Hour: %d, Min: %d, Sec: %d, Tzone: %d\n",
33 month, day, yr, hr, min, sec, tzone);
然后可以使用struct tm和mktime。