我有一个包含本地日期/时间的字符串,我需要将其转换为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);
Run Code Online (Sandbox Code Playgroud)
但是我得到的time_t值是如果字符串被解析为UTC而不是本地时间的话我期望的值.也许我误解了strptime应该做什么,但是在我9月1日的时区(英国),我们正在使用BST(即UTC + 1小时)所以我希望我最终得到的值比UTC提前1小时.
有没有办法将字符串解释为localtime,自动考虑在该日期生效的UTC偏移量?请注意,我需要time_t值而不是struct tm,在上面的示例中我希望time_t值对应于2009-09-01 01:00:00 GMT