源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++中获取UTC时间精确到微秒的实现代码

  • 时间:2022-01-22 11:42 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++中获取UTC时间精确到微秒的实现代码
在日常开发过程中经常会使用到时间类函数的统计,其中获取1970年至今的UTC时间是比较常使用的,但是在windows下没有直接能够精确到微妙级的函数可用。本文提供方法正好可以解决这类需求问题。 下面先给出[b]C++实现代码[/b]:
[u]复制代码[/u] 代码如下:
#ifndef UTC_TIME_STAMP_H_ #define UTC_TIME_STAMP_H_ #include <windows.h> #include <sys/timeb.h> #include <time.h> #if !defined(_WINSOCK2API_) && !defined(_WINSOCKAPI_) struct timeval { long tv_sec; long tv_usec; }; #endif static int gettimeofday(struct timeval* tv) {     union {              long long ns100;              FILETIME ft;     } now;     GetSystemTimeAsFileTime (&now.ft);     tv->tv_usec = (long) ((now.ns100 / 10LL) % 1000000LL);     tv->tv_sec = (long) ((now.ns100 - 116444736000000000LL) / 10000000LL);     return (0); } //获取1970年至今UTC的微妙数 static time_t TimeConversion::GetUtcCaressing() {     timeval tv;     gettimeofday(&tv);     return ((time_t)tv.tv_sec*(time_t)1000000+tv.tv_usec); } #endif
接下来给出[b]使用方法[/b]: timeval tv; gettimeofday(&tv);  或者直接调用:GetUtcCaressing(); [b]最后说明:[/b]本文代码在vs2008与VS2010下都进行了测试,可放心使用 附录:本文同时给出UTC时间秒级UTC获取方法代码:
[u]复制代码[/u] 代码如下:
time_t timep; struct tm *p; time(&timep); p=localtime(&timep); timep = mktime(p); printf("%d\n",timep);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部