我正在使用官方的 Mysql C++ 驱动程序,我正在尝试读取 mysql 日期时间字符串并将其解析为 C++ 中的 unix 时间戳。
我意识到我可以在 mysql 中使用 unix_timestamp(column_name) 函数,但是,我的特定实例要求我从 C++ 中解析字符串。
这是我尝试过的
static long UnixTimeFromMysqlString(std::string &s)
{
struct tm tmlol;
strptime(s.c_str(), "%Y-%m-%d %H:%M:%S", &tmlol);
time_t t = mktime(&tmlol);
return t;
}
我从这个函数得到的结果似乎不正确。输入字符串是标准的 mysql 日期时间字符串。前任。 2013-06-06 13:37:42.
有人有这方面的经验吗?谢谢
最佳答案
我认为您已经可以使用 - 您可以通过查看以下内容来测试它:
string str = "2013-06-06 16:06:00";
cout << UnixTimeFromMysqlString(str) << endl;
time_t current = time(NULL);
cout << current << endl;
当我运行它时,我得到了:
1370549160
1370549171
要将其视为字符串,您可以执行以下操作:
time_t ret = UnixTimeFromMysqlString(str);
cout << "It is now " << ctime(&ret) << endl;
产生输出:
It is now Thu Jun 6 16:06:00 2013
关于来自 Mysql DateTime 字符串的 C++ unix 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16969844/