来自 Mysql DateTime 字符串的 C++ unix 时间

标签 c++ mysql parsing datetime

我正在使用官方的 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/

相关文章:

c++ - SDL 的 LNK 2019 错误

c++ - postmessage的执行顺序是什么?

c++ - 推迟 boost::scoped_ptr 的初始化

c++ - 在 C++ 中声明指向结构的指针会自动为其成员分配内存。我错了吗?

mysql - mysql 查询中的分隔行

php - 通过下拉列表对数据库条目进行排序

php - PHP 中的动态逻辑表达式解析/评估?

mysql - Symfony2 存储库和自定义连接

java - 将 string[] 转换为逗号分隔的字符串。

c - 如何检查命令行参数是否为整数