引言
最近工作上遇到了这样的问题,一个接口的一个调用参数是需要传入一个 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 的数据类型了。
来源:CSDN
作者:曾经去过跨越一个小时的地方
链接:https://blog.csdn.net/u012814856/article/details/65628630