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