2015-11-03 100 views
1

首先我不想用#include <ctime>time(0);的时候(0);与ctime。我想要的是如果说时间是10:13:40:23 AM我会得到23的值。我环顾网络了一会儿,除了ctime之外找不到任何东西,但ctime是以毫秒为单位的系统时间这意味着价值非常高。另一个例子是12:56:30:192 PM,我会得到192的值。感谢任何帮助:)。如何在C++中获得毫秒?

+0

这是平台相关的。你在使用什么平台? –

+0

Windows 7.另外我正在使用minGW编译器。 – MrQandA

+1

请注意,如果您只是通过'1000'修改,您将获得完全的结果。 – BeyelerStudios

回答

5

使用C++ 11,使用std :: chrono库。

#include <iostream> 
#include <chrono> 

int main() 
{ 

    auto now = std::chrono::system_clock::now(); 

    std::chrono::milliseconds ms_since_epoch = std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()); 
    std::chrono::seconds seconds_since_epoch = std::chrono::duration_cast<std::chrono::seconds>(now.time_since_epoch()); 

    std::cout << (ms_since_epoch - seconds_since_epoch).count() << std::endl; 

    return 0; 
} 

在秒思想,模1000会做相同的减秒。 无论如何,考虑到这个纪元是规范的(对于秒和00,对于毫秒),那部分实际上是现在时刻的实际毫秒测量。

+2

这给出了自纪元以来的总毫秒数。 – Chad

+0

是的,修正了,谢谢。 – Eran