我有一个包含本地日期/时间的字符串,我需要将其转换为 time_t 值(以 UTC 为单位) - 我一直在尝试这个:
char* date = "2009/09/01/00";
struct tm cal = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL};
strptime(date, "%Y/%m/%d/%H", &cal);
time_t t = mktime(&cal);
但是如果字符串被解析为 UTC 而不是本地时间,我得到的 time_t 值是我期望的值。也许我误解了 strptime 应该做什么,但是在 9 月 1 日我的时区(英国)中,我们使用的是 BST(即 UTC + 1 小时),所以我希望我最终得到的值比 UTC 早 1 小时.
有没有办法将字符串解释为本地时间,自动考虑到该日期有效的 UTC 偏移量?请注意,我需要 time_t 值而不是 struct tm,在上面的示例中,我希望 time_t 值对应于 2009-09-01 01:00:00 GMT