C/C++教程

获取当前系统本地时间,精确到毫秒的实例

本文主要是介绍获取当前系统本地时间,精确到毫秒的实例,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

实例如下:

#include <sys/timeb.h>
#include <chrono>

char* cur_time_c(char strDateTime[32])
{
 struct timeb tp_cur;
 ftime(&tp_cur);

 struct tm btm;

#ifdef WIN32
 localtime_s(&btm, &tp_cur.time);
#else
 localtime_r(&tp_cur.time, &btm);
#endif

 sprintf(strDateTime, "%04d-%02d-%02d %02d:%02d:%02d.%03d", 
  btm.tm_year + 1900, btm.tm_mon + 1, btm.tm_mday,
  btm.tm_hour, btm.tm_min, btm.tm_sec, tp_cur.millitm);

 return strDateTime;
}


char* cur_time_cpp11(char strDateTime[32])
{
 static const std::chrono::hours = EIGHT_HOURS(8);

 auto nowLocalTimeCount 
  = std::chrono::system_clock::now().time_since_epoch()
  + EIGHT_HOURS;

 std::chrono::hours now_h
  = std::chrono::duration_cast<std::chrono::hours>(nowLocalTimeCount);
 std::chrono::minutes now_m
  = std::chrono::duration_cast<std::chrono::minutes>(nowLocalTimeCount);
 std::chrono::seconds now_s
  = std::chrono::duration_cast<std::chrono::seconds>(nowLocalTimeCount);
 std::chrono::milliseconds now_ms
  = std::chrono::duration_cast<std::chrono::milliseconds>(nowLocalTimeCount);

 sprintf(strDateTime, "%02d:%02d:%02d.%03d", 
  now_h % 24, now_m % 60, now_s % 60, now_ms % 1000);

 return strDateTime;
}

以上这篇获取当前系统本地时间,精确到毫秒的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持找一找教程网。

这篇关于获取当前系统本地时间,精确到毫秒的实例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!