//model/util.h #pragma once #ifndef __util_h__ #define __util_h__ #include <chrono> #include <ctime> #include <fstream> #include <iomanip> #include <iostream> #include <sstream> #include <string> #include <thread> #include <unistd.h> #include <vector> using namespace std; class util { public: void time_demo(); void print_time(); }; #endif //model/util.cpp #include "model/util.h" void util::time_demo() { chrono::time_point<chrono::high_resolution_clock> now = chrono::high_resolution_clock::now(); cout<<"nanos "<<chrono::duration_cast<chrono::nanoseconds>(now.time_since_epoch()).count() <<",micros "<<chrono::duration_cast<chrono::microseconds>(now.time_since_epoch()).count() <<",mills "<<chrono::duration_cast<chrono::milliseconds>(now.time_since_epoch()).count() <<",seconds "<<chrono::duration_cast<chrono::seconds>(now.time_since_epoch()).count()<<endl; chrono::milliseconds mills=chrono::duration_cast<chrono::milliseconds>(now.time_since_epoch()); chrono::seconds seconds=chrono::duration_cast<chrono::seconds>(now.time_since_epoch()); uint64_t millsValue=mills.count()-seconds.count()*1000; time_t rawTime = chrono::high_resolution_clock::to_time_t(now); struct tm tmInfo = *std::localtime(&rawTime); stringstream ss; ss << std::put_time(&tmInfo, "%Y%m%d%H%M%S") << std::setfill('0') << std::setw(3) << millsValue; string dtValue = ss.str(); ss = stringstream(std::string()); cout << "now is " << dtValue << endl<<endl; } void util::print_time() { while (1) { time_demo(); usleep(100000); } }
//main.cpp #include "model/util.h" void print_time_demo() { util ul; ul.print_time(); } int main(int args,char **argv) { print_time_demo(); }
Compile
g++ -g -std=c++2a -I. *.cpp ./model/*.cpp -o h1 -luuid -lpthread
Run
标签:util,now,get,since,precision,current,epoch,time,include From: https://www.cnblogs.com/Fred1987/p/17017307.html