This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/TM4C1290NCPDT:mktime() leapyear 出错了吗?

Guru**** 2538930 points
Other Parts Discussed in Thread: TM4C1290NCPDT

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/953815/compiler-tm4c1290ncpdt-mktime-leapyear-is-going-wrong

器件型号:TM4C1290NCPDT

工具/软件:TI C/C++编译器

您好!

mktime 函数出现问题、其中2个日期返回相同的值。

TM 结构
DD-MM-YY
HH:MM:SS mktime 的输出
2020年2月29日 00:00:00 1582934400
2020年3月1日 00:00:00 1582934400

我将 TM4C1290NCPDT 与编译器 ti-CGT-ARM_18.1.3.LTS 搭配使用

我在这里缺少什么吗?

如果我在中通过 mktime 运行相同的日期、例如 onlinegdb、我将获得以下结果、这些结果是预期值

29-feb = 1582934400
3月1日= 1583020800

我在这里缺少什么吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不确定、但我认为您在 本论坛主题中讨论的问题相同。  在该线程中、问题的解决方法是 添加构建选项 -D_TI_TIME_USS_64

    请告诉我此建议是否解决了问题。

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢、这确实部分解决了问题、

    3月1日00:00:00现在返回 1583042400、转换为3月1日06:00:00

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很抱歉耽误你的时间。

    函数 mktime 假设时区是美国的中部时间。  要将其更改为 UTC,请添加此代码行...

    tz.timezone = 0; 

    有关更多详细信息、请参阅 此论坛主题

    谢谢、此致、

    乔治