手机
当前位置:查字典教程网 >编程开发 >C语言 >C++中获取UTC时间精确到微秒的实现代码
C++中获取UTC时间精确到微秒的实现代码
摘要:在日常开发过程中经常会使用到时间类函数的统计,其中获取1970年至今的UTC时间是比较常使用的,但是在windows下没有直接能够精确到微妙...

在日常开发过程中经常会使用到时间类函数的统计,其中获取1970年至今的UTC时间是比较常使用的,但是在windows下没有直接能够精确到微妙级的函数可用。本文提供方法正好可以解决这类需求问题。

下面先给出C++实现代码:

复制代码 代码如下:

#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

接下来给出使用方法:

timeval tv;

gettimeofday(&tv);

或者直接调用:GetUtcCaressing();

最后说明:本文代码在vs2008与VS2010下都进行了测试,可放心使用

附录:本文同时给出UTC时间秒级UTC获取方法代码:

复制代码 代码如下:

time_t timep;

struct tm *p;

time(&timep);

p=localtime(&timep);

timep = mktime(p);

printf("%dn",timep);

【C++中获取UTC时间精确到微秒的实现代码】相关文章:

深入C++中inline关键字的使用

二分法求多项式在-10 10间值的实现代码

解析C++无锁队列的实现代码

C++十六进制宏的用法详解

使用C语言中的time函数获取系统时间

c语言中十进制转二进制显示小工具的实现代码

新旧MFC版本实现CEdit透明的2种方法的实例代码

浅析C++中单链表的增、删、改、减

递归法求最大公约数和最小公倍数的实现代码

c++ 巧开平方的实现代码

精品推荐
分类导航