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

z2x2c2v

z2x2c2v

2016-02-19 08:55

下面请跟着图老师小编一起来了解下C++中获取UTC时间精确到微秒的实现代码,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
在日常开发过程中经常会使用到时间类函数的统计,其中获取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);

展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
C++中获取UTC时间精确到微秒的实现代码

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

编程语言 网络编程
c++ 巧开平方的实现代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

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

编程语言 网络编程
解析C++无锁队列的实现代码

C# WORD操作实现代码

编程语言 网络编程
C# WORD操作实现代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

c# SQLHelper(for winForm)实现代码

编程语言 网络编程
c# SQLHelper(for winForm)实现代码

jquery 获取json数据实现代码

Web开发
jquery 获取json数据实现代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

解析C++浮点数无效值的定义与无效值判定的小结

解析C++浮点数无效值的定义与无效值判定的小结

javascript 屏蔽鼠标键盘的几段代码

javascript 屏蔽鼠标键盘的几段代码
下拉加载更多内容 ↓