2016-04-30 66 views
1

ミリ秒を含めて現在の(ローカル)時刻を(例えば、std::chrono::system_clockに基づいて)印刷したいとします。 12:32:45.287。 私は、ミリ秒単位なしでそれを行うことができます:私はミリ秒単位の整数値を取得することができればそれはまた良いでしょうC++ 11現在のシステム時刻を表示する(ミリ秒を含む)

std::time_t time = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); 
char buffer[sizeof("HH:MM:SS")]; 
if (std::strftime(buffer, sizeof(buffer), "%H:%M:%S", std::localtime(&time)) == 0) 
    std::cout << "Error formating time" << std::endl; 
else std::cout << buffer << std::endl; 

。 (私はstd::localtime(&time)->tm_secと秒を取得することができます)

EDIT私は、ポータブルソリューションをしたいと思いますが、それは、Windowsで動作するものよりも、ことはできません場合は10 /ビジュアルC++ 14.0 /インテルコンパイラー16.0

答えて

0

あなたは得ることができますlinuxまたはunixを使用している場合は、このtimevalでミリ秒単位で指定します。

#include <cstdio> 
#include <iostream> 
#include <sys/time.h> 
using namespace std; 

long getCurrentTime() { 
    struct timeval tv; 
    gettimeofday(&tv,NULL); 
    return tv.tv_sec * 1000 + tv.tv_usec/1000; 
} 

int main() { 
    cout<<"milliseconds: "<<getCurrentTime()<<endl; 
    return 0; 
} 
+0

申し訳ありません、私のシステムには 'sys/time.h'ヘッダファイルがありません – Isaac

+0

あなたは窓を使っていますか? – Philokey

+0

はい(Windows 10/Visual C++ 14/Intelコンパイラ16.0) – Isaac

0

あなたがCに移植性、それをしたい場合は、ポータブル図書館が...すなわち

https://apr.apache.org/docs/apr/2.0/group__apr__time.html

かに移植されているC言語で書かれたアプリケーションをApacheの4月を使用しているものを見てあなたがターゲットとしたいプラットフォーム、つまりMysql、Lua、JVM

関連する問題