我想创建一个日期,但我的时间戳在 char* 中。
所以我正在尝试转换为 int 但使用 atoi() 或 toInt() 我不明白。
qDebug() << atoi("1478790756754"); /* give 2147483647 */
QString tmp = "1478790756754";
qDebug() << tmp.toInt(); /* give 0 */
目的是获取日期,例如dateTime.setTime_t()。
最佳答案
您的时间戳似乎是 自 1.1.1970 以来的毫秒数 格式。这显然不适合 32 位整数,因为您的体系结构中的 int
类型也是如此。
解决方法很简单:转换为取值范围更大的类型,即long long
:
QString tmp = "1478790756754";
QDateTime date = QDateTime::fromMSecsSinceEpoch(tmp.toLongLong());
QString
的转换函数也有一个指向 bool
的输出参数指针。您可以传递一个 bool 变量并对其进行测试以检查转换是否成功。
关于c++ - Qt/C++ - 将字符串时间戳转换为 uint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40531045/