如何将时间转换为 tm 结构而不是 CTime 类
我目前有从定义的值创建 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对不起。我没有仔细查看 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.