[EDIT]
Changing the code to C++ style:
#include
#include
std::chrono::time_point now = std::chrono::system_clock::now();
auto duration = now.time_since_epoch();
typedef std::chrono::duration
>::type> Days; /* UTC: +8:00 */
Days days = std::chrono::duration_cast(duration);
duration -= days;
auto hours = std::chrono::duration_cast(duration);
duration -= hours;
auto minutes = std::chrono::duration_cast(duration);
duration -= minutes;
auto seconds = std::chrono::duration_cast(duration);
duration -= seconds;
auto milliseconds = std::chrono::duration_cast(duration);
duration -= milliseconds;
auto microseconds = std::chrono::duration_cast(duration);
duration -= microseconds;
auto nanoseconds = std::chrono::duration_cast(duration);
std::cout << hours.count() << ":"
<< minutes.count() << ":"
<< seconds.count() << ":"
<< milliseconds.count() << ":"
<< microseconds.count() << ":"
<< nanoseconds.count() << std::endl;
Result:
17:56:14:94:451:679
[Old]
A simply example:
#include
char fmt[64];
char buf[64];
struct timeval tv;
struct tm *tm;
gettimeofday (&tv, NULL);
tm = localtime (&tv.tv_sec);
strftime (fmt, sizeof (fmt), "%H:%M:%S:%%06u", tm);
snprintf (buf, sizeof (buf), fmt, tv.tv_usec);
printf ("%s\n", buf);
Result:
00:01:32:695240