I want to create a date but my timestamp is in a char*.
So I'm trying to convert to int but with atoi() or toInt() I don't get it.
qDebug() << atoi("1478790756754"); /* give 2147483647 */
QString tmp = "1478790756754";
qDebug() << tmp.toInt(); /* give 0 */
Your timestamp seems to be in the milliseconds since 1.1.1970 format. This obviously doesn't fit a 32-bit integer, as is the
int type on your architecture.
The solution is simple: convert to a type with larger value range, i.e.
QString tmp = "1478790756754"; QDateTime date = QDateTime::fromMSecsSinceEpoch(tmp.toLongLong());
QString's conversion functions also have an out parameter pointer to
bool. You can pass a bool variable and test it to check if the conversion was successful.