gettimeofday时间

2023-10-28

gettimeofday: 挂钟时间

gettimeofday 系统调用可以获取系统当前挂钟时间(Wall-Clock Time)。它的第一个参数是一个指向 struct timeval 类型空间的指针。这个结构可以表示一个以秒为单位的时间。这个值被分为两个域,tv_sec 表示整秒数,而 tv_usec 表示剩余的微秒部分。整个 struct timeval 值表示的是从 Unix ''epoch''(UTC 时间 1970 年 1 月 1 日)开始到当前流逝的时间。gettimeofday 的第二个参数应该为 NULL。如需调用,请包含 <sys/time.h>。

以 Unix epoch 计算的秒数并不是一种非常便捷的计算时间的方式。库函数 localtime 和 strftime 被提供以帮助解析 gettimeofday 函数的返回值。localtime 函数的参数是一个指向秒数(struct timeval 中的 tv_sec 域)的指针,返回值是指向一个 struct tm 类型空间的指针。这个结构中包含的信息更有意义,它们是根据当前时区设置而被填入的时间域:

tm_hour、tm_min、tm_sec
当天的时间,分别对应时、分、秒
tm_year、tm_mon、tm_day
年、月、日
tm_wday
星期几。0 代表星期天。
tm_yday
一年中的第几天。
tm_isdst
代表启用夏令时的标志位。

而 strftime 可以从这个 struct tm 指针进一步生成自定义格式化的表示时间的字符串。格式与 printf 的指定方式类似,通过内嵌特定的代码指示输出特定的时间域。如下列字符串

%Y-%m-%d %H:%M:%S

将以如下格式输出时间:

2001-01-14 13:09:42

strftime 接受的参数依次包括一个指向字符缓冲的指针、缓冲的长度、格式化字符串和一个指向 struct tm 对象的指针。参考man 3 strftime获取完整的格式化代码列表。注意 localtime 和 strftime 都只处理到秒级别精度(即 struct timeval 的 tv_usec 部分是不处理的)。如果你希望这部分也被包含在你输出的字符串中,你需要手工进行处理。

要使用 strftime 或 localtime 请包含 <time.h>。

代码 8.6 所示的程序打印出了当前日期和时间,精确度到毫秒。

代码 8.6 (print-time.c) 打印日期和时间

#include <stdio.h>
#include <sys/time.h>
#include <time.h>
#include <unistd.h>

void print_time ()
{
  struct timeval tv;
  struct tm* ptm;
  char time_string[40];
  long milliseconds;

  /* 获得日期时间,并转化为 struct tm。 */
  gettimeofday (&tv, NULL);
  ptm = localtime (&tv.tv_sec);
  /* 格式化日期和时间,精确到秒为单位。*/
  strftime (time_string, sizeof (time_string), “%Y-%m-%d %H:%M:%S”, ptm);
  /* 从微秒计算毫秒。*/
  milliseconds = tv.tv_usec / 1000;
  /* 以秒为单位打印格式化后的时间日期,小数点后为毫秒。*/
  printf (“%s.%03ld\n”, time_string, milliseconds);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gettimeofday时间 的相关文章

  • 在 python 中使用高精度时间戳

    嘿 我正在使用 python 处理日期时间 我想知道解析这个时间戳的最佳方法是什么 时间戳是ISO标准 这里是一个例子 2010 06 19T08 17 14 078685237Z 现在到目前为止我已经使用过 time datetime d
  • Sql Server 的夏令时

    我们正在使用一个以 C Unix 格式存储日期的旧应用程序 C 时间基本上是自 1970 年 1 月 1 日以来的秒数 日期以整数形式存储在 SQL Server 数据库中 我正在为使用这些日期的报告编写视图 到目前为止 我正在使用以下命令
  • 计算轮班工作时间并检测

    我有个问题 我的英语很差 我需要用PHP做一个加班计算 已经有一个代码可以实现这一点 但当工作时间超过2天时 计算就会出错 工作开始 2018 09 09 13 43 工作结束 2018 09 11 07 13 结果 07 18 04 00
  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • `SystemTime::now` 是否受夏令时影响?

    在时间 T 我调用SystemTime now duration since UNIX EPOCH 在时间 T 10 当夏令时开始时 我调用相同的调用 我可以预期这两个实例之间会出现任何奇怪的行为吗 SystemTime本身完全独立于时区
  • 如何在 C++ 中使用 LoadLibrary(..) 调用 kernel32.dll 函数 GetTickCount()

    我正在寻找一个在 Windows 机器上获取以毫秒为单位的时间的函数 本质上 我想调用这个 WinAPI 函数 GetTickCount 但我陷入了 使 用 LoadLibrary n 调用 GetTickCount 函数 部分 我搜索了每
  • 除了在断点处停止之外,如何测量一大块代码的时间?

    我正在 Windows 上开发 C 游戏 模拟 图形应用程序 编辑开始 如果重要的话 我正在使用 Visual Studio 2013 编辑完 Setup 我正在使用 QueryPerformanceCounter 测量从一帧到下一帧的时间
  • 如何将毫秒转换为天、小时、分钟

    我尝试这样做 long Plptime player getStatistic Statistic PLAY ONE TICK 50L from ticks to ms 1 tick 20 each sec by 50 gives apro
  • 如何使用 .toLocaleTimeString() 而不显示秒?

    我目前正在尝试显示用户的时间而不显示秒数 有没有办法使用 Javascript 的 toLocaleTimeString 来做到这一点 做这样的事情 var date new Date var string date toLocaleTim
  • 将 pandas 数据框中的列减去其第一个值

    我需要将 pandas 数据帧的一列中的所有元素减去其第一个值 在这段代码中 pandas 抱怨 self inferred type 我猜这是循环引用 df Time df Time df Time 0 在这段代码中 pandas 抱怨为
  • 在 Java 中运行代码 x 秒?

    我想编写一个 java while 循环 它将迭代 15 秒 我认为执行此操作的一种方法是存储当前系统时间 15 秒 然后将其与 while 循环签名中的当前时间进行比较 有没有更好的办法 这个设计取决于你想在 15 秒内做什么 两种最合理
  • Clock_t、time_t 和 struct tm 之间有什么区别?

    Clock t time t 和 struct tm 之间有什么区别 结构体看起来像这样 struct tm int tm sec int tm min int tm hour int tm mday int tm mon int tm y
  • jQuery 时间戳之前的时间?

    下面是一个非常好的 jQuery 插件 与他们在 SO 上使用的插件非常相似 对我来说问题是它用它来转换时间
  • 为什么libc中没有gmtime的反函数?

    在 libc 中 有两个函数可以将系统时间转换为日历时间 gmtime and localtime 但只有localtime有反函数 mktime 为什么没有反函数gmtime 如果不应该有 为什么gmtime exists 我发现这段代码
  • 乔达时间:将 UTC 转换为本地时间

    我想将 Joda Time UTC DateTime 对象转换为本地时间 这是一种看似有效的费力方法 但一定有更好的方法 这是没有周围声明的代码 在 Scala 中 val dtUTC new DateTime 2010 10 28T04
  • r 选择数据框中某个值以下和之后的值

    我有一个问题如何从表中选择某些值 我有一个包含时间和值的表 我想在特定时间之后获取下面的行 示例 Data Frame Time Value 02 51 0 08033405 05 30 0 43456738 09 45 0 3605207
  • 计算两个 Java 日期实例之间的差异

    我正在使用Java的java util DateScala 中的类并想要比较Date对象和当前时间 我知道我可以使用 getTime 计算增量 new java util Date getTime oldDate getTime 然而 这只
  • 如何确定特定时间是否在javascript中给定时间范围之间

    我想检查两个时间 var open time 和 var close time 之间的 var check val var open time 23 30 var close time 06 30 var check val 02 30 i
  • setTimeout - 将变量作为时间传递

    我有一个 setTimeout 我希望能够使用变量作为计时器 var that this var time this spawnTime setTimeout function time that SpawnCounter time 这似乎
  • 如何将完整的日期格式拆分为日期和时间?

    我有很多格式为我的示例所示的字符串 我必须解析它们 我正在尝试确定今天是哪根弦 我的问题是 时间快到了 我只需要比较那个日期 接下来我想检查时间是否在 after 和 before 的两个时间戳 HH mm ss 之间 但存在问题 日期几乎

随机推荐

  • 计算机常用控温算法,常用温度控制方法原理 -解决方案-华强电子网

    常用PID调节器 温控仪控制算法包括常规PID 模糊控制 神经网络 Fuzzy PID 神经网络PID 模糊神经网络 遗传PID及广义预测等算法 常规PID控制易于建立线性温度控制系统被控对象模型 模糊控制基于规则库 并以绝对或增量形式给出
  • random函数汇总

    1 random random random random 用于生成一个0到1之间的随机浮点数 0 lt n lt 1 gt gt gt random random 0 7086588033796296 2 random uniform r
  • 【Django知识补充 - 1】:admin站点和rest_framework实现文件的上传和下载

    文章目录 项目准备 settings py中的配置 主路由urls py的配置 子应用中的文件代码 init py admin py models py serializers py urls py views py 演示 在admin中上
  • java实现-合并两个有序数组

    合并两个有序数组 给你两个有序整数数组 nums1 和 nums2 请你将 nums2 合并到 nums1 中 使 nums1 成为一个有序数组 初始化 nums1 和 nums2 的元素数量分别为 m 和 n 你可以假设 nums1 的空
  • 移动端 文件预览(所有文档文件类型)

  • Java21天打卡-Day15 数组

    import java util Arrays public class Day15 数组 题目1 创建一个长度是8的字符串数组 使用8个长度是5的随机字符串初始化这个数组 对这个数组进行排序 按照每个字符串的首字母排序 无视大小写 注1
  • PermissionX 1.7发布,全面支持Android 13运行时权限

    各位小伙伴们大家早上好 一年一度的PermissionX升级又来了 还记得上次发布PermissionX 1 6版本还是在去年10月份的时候 当时是对Android 12系统进行了支持 详情可以参考这篇文章 PermissionX 1 6发
  • 深度学习框架Pytorch傻瓜式安装教程

    前提 已经安装完minianaconda和pycharm minianaconda直接官网下载即可 minianaconda比起anaconda体量很小 pycharm专业版2020下载百度网盘链接 链接 https pan baidu c
  • 【Detectron2】入门02-使用自己的数据集

    Detectron2 official Documents https detectron2 readthedocs io tutorials datasets html 目录 COCO格式数据集 Standard dataset dict
  • Qt对象树

    对象树 Qt提供了对象树机制 能够自动 有效的组织和管理继承自QObject的Qt对象 每个继承自QObject类的对象通过它的对象链表 QObjectList 来管理子类对象 当用户创建一个子对象时 其对象链表相应更新子类对象信息 对象链
  • JVM优化

    java运行时数据区 程序计数器 线程私有 java虚拟机栈 线程私有 本地方法栈 线程私有 java堆 线程公用 方法区 线程公用 jvm内存分配 栈内存分配 私有的 不会存在线程安全 保存参数 局部变量 中间计算过程和其他的数据 退出方
  • redis复习

    1 关系型数据库和非关系型数据库 关系型数据库 Relational Database 和非关系型数据库 Non relational Database 或 NoSQL Database 之间的主要区别可以从以下几个方面进行理解 1 1 数
  • 机器学习(数据分析)数学基础——线性代数篇(五)线性方程组

    求解线性方程组也算是考研中的必备技能了 它往往出现在大题的第一问 注 本篇需要一些线性代数基础 1 首先我们来解决r n的情况 线性方程组 import numpy as np from scipy import linalg 定义A矩阵
  • [Codeforces] number theory (R1900) Part.2

    Codeforces number theory R1900 Part 2 题单 https codeforces com problemset page 1 tags number 20theory 1601 1900 294C Shaa
  • 欧拉角(Euler angles)

    前言 本人也就英语4级水平 由于本篇中存在大量学术词汇 翻译时必然会有不当之处 原文可以在下面的链接中找到 具体意义各位可以自行斟酌 标红的部分是已发现存疑的翻译 也请各位指正 维基百科 欧拉角 欧拉角 欧拉角是由Lenhard Euler
  • C# 序列化与反序列化

    在C 网络编程中 为了传输复杂的数据类型 如类类型和容器 例如Dictionary List 我们需要将其转换成字节数组 C 中提供了序列化和反序列化来实现该方式 先转换成内存流 在转换成 public static System IO M
  • C++ vector、string使用

    vector就是类似于一个数组的容器 内容比数组更加全面 很多操作都有自己的函数可以直接拿过来进行使用 主要函数就是 v push back k 尾插元素 v insert it k 在任意位置插入元素 v eraser it it k 删
  • 让Win32窗口程序拥有控制台窗口

    让Win32窗口程序拥有控制台窗口 首先 为什么我们有了普通窗口后还要控制台窗口呢 因为我们可以用它方便的输出调试信息 而且普通玩家看到了也会觉得很高端 如果他会输几条命令 可能他会以为自己就是黑客了 示例效果 WinMain作为入口函数后
  • Zotero

    利用zotero插件添加及修改参考文献样式 1 1 zotero插件安装 1 2 zotero插件功能介绍 1 2 1 Add Edit Citation 参考文献引用样式及插入方法 1 2 1 1 选择及添加参考文献样式 1 2 1 2
  • gettimeofday时间

    elpi Preferences Help Guide About Trac Wiki Timeline Roadmap Browse Source View Tickets Search Start Page Index History