如何将时间转换为 tm 结构而不是 CTime 类

发布于 2024-09-26 21:15:16 字数 626 浏览 5 评论 0原文

我目前有从定义的值创建 CTime 对象的代码。

#define TIME_VALUE 0x301DDF00  // Aug 1, 1995 @ 04:00:00

CTime t = CTime( TIME_VALUE );

这将创建所需的日期 1995 年 8 月 1 日 04:00:00

我无法再使用 CTime,因此我尝试使用 time_t 和 tm 代替。由于 CTime 构造函数接受自 1970 年 1 月 1 日以来的秒数,而 time_t 表示自 1970 年 1 月 1 日以来的秒数,因此我尝试使用以下代码。

#define TIME_VALUE 0x301DDF00  // Aug 1, 1995 @ 04:00:00

time_t tmpTime = TIME_VALUE;
struct tm createTime;

if( localtime_s( &createTime, &tmpTime ) == S_OK )
{ 
 // Use createTime
}

createTime 最终为 August 1, 0095 04:00:00。我应该如何成功地从定义的值转到 time_t 和 tm ?

提前致谢。

I currently have code that creates a CTime object from a defined value.

#define TIME_VALUE 0x301DDF00  // Aug 1, 1995 @ 04:00:00

CTime t = CTime( TIME_VALUE );

This creates the desired date of Aug 1, 1995 04:00:00

I can no longer use CTime so I am trying to use time_t and tm instead. Since the CTime constructor takes in the number of seconds since Jan 1, 1970 and time_t represents the number of seconds since Jan 1, 1970, I tried to use the following code.

#define TIME_VALUE 0x301DDF00  // Aug 1, 1995 @ 04:00:00

time_t tmpTime = TIME_VALUE;
struct tm createTime;

if( localtime_s( &createTime, &tmpTime ) == S_OK )
{ 
 // Use createTime
}

createTime ends up as August 1, 0095 04:00:00. How am I supposed to go from the defined value to a time_t and tm successfully?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南街女流氓 2024-10-03 21:15:16

对不起。我没有仔细查看 tm 文档。年份是实际年份减去 1900,月份是从零开始的。我现在明白了。

Sorry. I didn't look at the tm documentation closely enough. The year is the actual year minus 1900 and the month is zero based. I got it now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文