October 21, 2014
C/C++ : Get Current Time
Using Matlab, we can get the current date and time using “now” command. Example, using Matlab we can use below command :
>> datestr(now,'dd-mm-yyyy HH:MM:SS.FFF') ans = 21-10-2014 13:41:58.666
How if we want to get current time using C/C++ with the result like Matlab ?
We can use “localtime” to get date and time in C/C++ and use gettimeofday to get time in milisecon. The complete code how to get current time in C/C++ is :
string now() { time_t now = time(0); struct tm tstruct; char buf[80]; int milli; timeval curTime; //get militime gettimeofday(&curTime, NULL); milli = curTime.tv_usec / 1000; //get localtime tstruct = *localtime(&now); // Visit http://en.cppreference.com/w/cpp/chrono/c/strftime // for more information about date/time format //construct time strftime(buf, sizeof(buf), "%Y/%m/%d %H:%M:%S", &tstruct); sprintf(buf, "%s.%03i", buf, milli); return buf; } int main(int argc, char **argv) { string currT; currT = now(); cout<<"CURRENT TIME ( yyyy/mm/dd HH:MM:SS.FFF ) = "<< currT << endl; return(0); }
Compile the code using command :
g++ demo_now.cpp -lm -o demo_now
The sample running execution program is :
toto@ubuntu:~/Documents$ ./demo_now CURRENT TIME ( yyyy/mm/dd HH:MM:SS.FFF ) = 2014/10/21 13:53:07.069