首页 > 解决方案 > MKTIME 总是返回 -1 (Window10_64bit / MSVS2019 / C++)

问题描述

我有问题..我不明白为什么函数 MKTIME 总是返回 -1

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

using namespace std;

    int main() {
    time_t now = time(NULL);
    struct tm today;

    localtime_s(&today, &now);
    today.tm_year += 1900;
    today.tm_mon += 1;
    time_t t_today = mktime(&today);

    printf("%ld", (long)t_today);

    return 0;
}

t_today 是 -1

标签: c++visual-c++windows-10mktime

解决方案


mktime最多只能处理 3000 年。添加 1900 年today.tm_year将超过此限制。(1970 + 1900 = 3870) 尝试更小的偏移量。

参考:


推荐阅读