以毫秒为单位获取系统时间作为int / double

时间:2015-03-25 21:15:11

标签: c++ qt time

我是c ++的新手,但我根本无法让它工作。我试图以毫秒为单位获取系统当前时间并使用它做一些事情,但它无法正常工作。

Qt的

 QDateTime qt = new QDateTime();
  int x = qt.currentDateTimeUtc();
    if(x%5 ==0){
        //something

     }

C ++

     double sysTime = time(0);
if(sysTime%5.00 ==0.00){


}

我得到类型为double的二进制运算符错误的无效操作数。我不知道为什么?任何人都可以指出正确的方向

2 个答案:

答案 0 :(得分:1)

对于QT,请尝试使用函数QDateTime::toMSecsSinceEpoch()

http://doc.qt.io/qt-5/qdatetime.html#toMSecsSinceEpoch

这将返回qint64 http://doc.qt.io/qt-5/qtglobal.html#qint64-typedef

答案 1 :(得分:0)

如果您尝试get the unix timestamp in milliseconds in C,可以尝试以下代码:

include "time.h"
...
time_t seconds;
time(&seconds);
unsigned long long millis = (unsigned long long)seconds * 1000;

虽然请注意这是乘以1000 - 它看起来像毫秒,但准确度是几秒 - 如果你每隔5秒尝试做一次,你的x % 5代码判断就足够了,所以以下应该足够了:

time_t seconds; time(&seconds);