MFC怎么将字符串日期“2012-12-15”之类的转换成时间戳呢?

时间:2021-11-06 02:38:15
MFC怎么将字符串日期“2012-12-15”之类的转换成时间戳呢?

8 个解决方案

#1


用_stscanf将数字提取出来

#2


没有现成的函数,自己搞吧
int a, b, c;
sscanf("2012-12-15", "%d-%d-%d", &a, &b, &c);
然后自己转化下需要的格式了

楼上_stscanf是TCHAR下的函数

#3


boost

#4


或者 COleDateTime::ParseDateTime

#5


boost中有函数可用。

#include "stdafx.h"
#include "boost/date_time/posix_time/posix_time.hpp"
using namespace boost::posix_time;

int _tmain(int argc, _TCHAR* argv[])
{
    std::string ts("2002-01-20 23:59:59.000");
    ptime t(time_from_string(ts));
    tm pt_tm = to_tm( t );

或者如二楼所述,用sscanf提取年、月、日对应数字,再转换即可。

#6


COleDateTime::ParseDateTime

#7


一般来说“时间戳”都不是指绝对时间,而是“滴答数”,总长度只有4天时间左右。

#8


分析字符串自己转换啊

#1


用_stscanf将数字提取出来

#2


没有现成的函数,自己搞吧
int a, b, c;
sscanf("2012-12-15", "%d-%d-%d", &a, &b, &c);
然后自己转化下需要的格式了

楼上_stscanf是TCHAR下的函数

#3


boost

#4


或者 COleDateTime::ParseDateTime

#5


boost中有函数可用。

#include "stdafx.h"
#include "boost/date_time/posix_time/posix_time.hpp"
using namespace boost::posix_time;

int _tmain(int argc, _TCHAR* argv[])
{
    std::string ts("2002-01-20 23:59:59.000");
    ptime t(time_from_string(ts));
    tm pt_tm = to_tm( t );

或者如二楼所述,用sscanf提取年、月、日对应数字,再转换即可。

#6


COleDateTime::ParseDateTime

#7


一般来说“时间戳”都不是指绝对时间,而是“滴答数”,总长度只有4天时间左右。

#8


分析字符串自己转换啊