C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > 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;
}

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

您可能感兴趣的文章:
阅读全文