在C中解析日期/时间

在c中进行数据/时间解析(将任何格式的字符串转换为日期)时,我发现了以下有用的方法

1)strptime() – 这里%d,%m等可以有1或2个字符.该功能将负责这一点.因此,它将强制我们在两个转换说明符之间使用分隔符.例如:无法给出%d%m,它必须是%d /%m或任何其他分隔符.这也不支持时区.

2)提升日期IO – 这里%d,%m必须有2个字符.现在,我得到的输入字符串不能保证这个.结果,它无法成功使用它.但是,这似乎支持时区,但不确定.因为它说输入它确实支持时区

所以我打算结合使用两者来确定日期.但我想得到一个我可以考虑时区的地方.但似乎没有人支持这一点.

有人有建议吗?
RGDS,
AJ

最佳答案
@AJ:添加了另一个答案,以便代码被格式化

#include <stdio.h>
#include <sys/time.h>
#include <time.h>

int
main(void)
{
        struct tm tm[1] = {{0}};

        strptime("Tue, 19 Feb 2008 20:47:53 +0530", "%a, %d %b %Y %H:%M:%S %z", tm);
        fprintf(stdout, "off %ld\n", tm->tm_gmtoff);
        return 0;
}

运行看起来像(glibc 2.10.1):

freundt@clyde:pts/28:~/temp> ./test
off 19800

转载注明原文:在C中解析日期/时间 - 代码日志