时间类型转换:将COleDateTime转换为INT64类型

走远了吗. 提交于 2019-12-03 23:17:09

引言

最近工作上遇到了这样的问题,一个接口的一个调用参数是需要传入一个 INT64 类型的数据,然而现在另外一个同事给我的数据类型形如 2017-3-24 这样的数据类型,我该如何转换成 INT64 类型的时间数据呢?

解决方案

展开了大量的搜索大法,发现这样的问题很少有人遇到。通过折返走了好大一圈,终于找到了解决的办法,这个办法或许不是最好的办法,也将将可以使用了。

// 将形如 "2017-03-24" 的字符串转换为 COleDateTime类型变量
COleDateTime tempTime;
tempTime.ParseDateTime(CString(bsDate));
// 将 COleDateTime 类型变量转换为 win32 的 SYSTEMTIME 对象
SYSTEMTIME tempTempTime;
tempTime.GetAsSystemTime(tempTempTime);
// 将 SYSTEMTIME 类型变量转换为 tm 形式的数据类型
struct tm gm = {
    tempTempTime.wSecond,
    tempTempTime.wMinute,
    tempTempTime.wHour,
    tempTempTime.wDay,
    tempTempTime.wMonth - 1,
    tempTempTime.wYear - 1900,
    tempTempTime.wDayOfWeek,
    0,
    0
};
// 将 tm 形式的数据类型转化为 time_t 类型
time_t curTime = mktime(&gm);

查看上述代码,可以发现,转换步骤是这样的
其中, time_t 类型就是 INT64 的数据类型了。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!