unix 时间的相关函数

unix 的时间大致可分为实时的时间和结构体中的时间

计算 1900 到 1970 年之间的秒数 RFC1305 - Network Time Protocol  中规定,网络协议中的,时间戳的格式是一个四个八位组。其值是自 1900 年以来的秒数。 unix 没有提供函数以获得 1900 年以来的秒数,但它提供了 1970 年(UTC 时间)以来的秒数的获取方式。由于  1900 -1970 年之间的天数是一个固定值。所以我们可以得到 1970年以来的秒数。 //   闰年 366天,平年 365天,1900 - 1970 年有 18个闰年, static const int  seconds  =    ( (  1970 - 1900  )  * 365 + 18   )  * 24 * 60 * 60 ;时间的精度poxis 标准中,可以取到的时间的精度是 微秒(um)。 这是用 gettimeofday() 取得的。需要说明的是,time() 函数取得的系统秒数,未必是一个精确的值。可能和 gettimeofday() 得到的值 落后一秒。因为 time()是一个函数,而不是一个系统调用 。它只取系统中保存的一个数据结构。因此。在高精度的场合,time()取到的秒数需要和 gettimeofday() 取到的秒数做一下比较。如果不一样,则给 time 得到的时间补上一秒。 gettimeofday( & time_t  trecv, tsend;
//  获取当前的 localtime time(  & tsend );
// 补齐差的秒数 tsend  +=  ( ( now.tv_sec  & 1 ^  ( tsend  & 1 ) );
 一些系统中提供了取得纳秒的函数。另外, odbc 的 TIMESTAMP_STRUCT 数据类型,也是提供到纳秒的精度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值