2012-02-01 4 views
40

C++ 11의 설명서가 충분하지 않아서 약간의 문제가 발생했습니다.C++ chrono 시스템 시간 (밀리 초 단위, 시간 단위)

에포크 (Epoch) 이후의 시간을 밀리 초 또는 나노초 또는 초 단위로 가져온 다음이 값을 다른 해상도로 "캐스팅"해야합니다. gettimeofday()를 사용하여이 작업을 수행 할 수 있지만 쉽게 수행 할 수 있으므로 std :: chrono를 사용하여이 작업을 수행하려고했습니다.

std::chrono::time_point<std::chrono::system_clock> now = 
    std::chrono::system_clock::now(); 

하지만이 방법 time_point에서 얻은 해상도 무엇인지 모른다, 나는 간단한 부호 오래 오래이 때 얻을하는 방법을 알고하지 않으며, I :

나는 시도 그것을 다른 결의로 던지는 방법에 대한 개념이 없다.

+0

[표준 : 크로노과 COUT]의 중복 가능성 (http://stackoverflow.com/questions/7889136/stdchrono-and-cout) –

답변

77

now.time_since_epoch()을 사용하면 신기원 이후로 시간을 나타내는 기간을 the clock's resolution으로 할 수 있습니다. 밀리 초 duration_cast를 사용하려면 변환하려면 :

auto duration = now.time_since_epoch(); 
auto millis = std::chrono::duration_cast<std::chrono::milliseconds>(duration).count(); 
+11

+1. 자세한 내용은 여기 (거의 자습서입니다) : http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2661.htm –

+0

@ 하워드 감사합니다! 이제 나는 사람들에게 그들이 ''의 밑줄을 말하지 않을 때까지 나를 가리킬 수있는 곳이 있습니다. –

+0

@ R.MartinhoFernandes 나는 또한 chrono 라이브러리 [여기] (http://stackoverflow.com/questions/31575061/how-to-convert-stdchronotime-point-to-uint64-t)와 관련된 기본적인 질문을 가지고있다. 나 좀 도와 줄 수 있니? 어떤 도움이라도 대단히 감사하겠습니다. – user1950349

관련 문제