我有以下代码可以从string
的日期转换为integer
#include <sstream>
#include <string>
#include <ctime>
typedef long long int llint;
llint stringDate2LLInt(std::string date, std::string format)
{
std::stringstream ss(date);
std::tm dt;
ss >> std::get_time(&dt, format.c_str());
std::time_t tt = std::mktime(&dt);
return tt;
}
int main()
{
std::string date("9/29/2014 17:48");
std::string format("%m/%d/%Y %H:%M");
std::cout << date << "->" << stringDate2LLInt(date, format) << std::endl;
std::cout << date << "->" << stringDate2LLInt(date, format) << std::endl;
std::cout << date << "->" << stringDate2LLInt(date, format) << std::endl;
return 0;
}
但是,使用相同的参数值调用它,即"9/29/2014 17:48"
和"%m/%d/%Y %H:%M"
每次结果都不同。为什么会这样?
我想要做的是获得给定00:00 hours, Jan 1, 1970 UTC
以来date
以来的毫秒数(或几秒)。我能以任何方式做到这一点吗?