GMT时间到秒

时间:2012-10-11 07:06:52

标签: c

我正在代理服务器中实现缓存。我正在从请求的响应中存储Expires:字段,如果相同的请求到来,下次我会将Expires时间与当前时间进行比较。 现在我被困在这里。我应该如何将Expire时间格式转换为秒然后采取差异? 这有什么其他方法来获得时差吗?

过期时间的格式为:     Sat, 10 Nov 2012 07:05:26 GMT

假设我有两次,如何在GMT?

中进行两次比较

2 个答案:

答案 0 :(得分:1)

这是一个有效的例子:

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

int main(int argc, char **argv) {
    struct tm t;
    time_t seconds;
    const char *expire = "Sat, 10 Nov 2012 07:05:25 GMT";
    strptime(expire, "%a, %d %B %Y %H:%M:%S", &t);
    seconds = mktime(&t);
    printf("%lu\n", seconds);
}

请注意,您的时间必须是GMT时间,因为strptime()会忽略时区(至少在Linux上)。您可能还需要将语言环境设置为用于输入时间的相同语言环境。

答案 1 :(得分:0)

如果您的实施有,可以使用strptime函数将该字符串转换为struct tm,然后mktime转换为转换为{ {1}}以便于比较。