C++获取、打印当前时间:time、localtime

2023-05-16

总结:
1、函数1为基本的获取time_t格式时间函数
2、函数3、4为转换为tm格式时间函数;
3、函数2、5、6为输出可读格式时间函数。
4、其中函数2、5不符合使用习惯,因此不长使用,常用函数6定制化输出

以下函数全部在#include <ctime>中。

1、time_t time(time_t *seconds):
函数描述:返回基于当前系统的自纪元起经过的时间,以秒为单位
参数/返回值: seconds,存储获取的时间。
使用:

time_t now = time(nullptr);    

2、char *ctime(const time_t *timer):
函数描述:返回一个表示时间的字符串
格式:
Www Mmm dd hh:mm:ss yyyy(Mon Apr 05 15:23:17 2021)
其中,Www表示星期,Mmm表示月份,dd表示天数,hh:mm:ss表示时间,yyyy表示年份。
参数:time_t类型的指针。
返回值: c字符串,包含可读格式的日期时间信息
使用:

char* curr_time = ctime(&now); cout << curr_time <<endl;  // Mon Apr 05 15:23:17 2021    

3、struct tm *localtime(const time_t *timer):
函数描述:使用timer的值来填充tm结构
参数:time_t类型的指针。
返回值: 返回指向tm结构的指针,本地时间

在这里插入图片描述
使用:

tm* curr_tm = localtime(&now);

4、struct tm *gmtime(const time_t *timer):
函数描述:使用timer的值来填充tm结构
参数:time_t类型的指针。
返回值: 返回指向tm结构的指针,GMT时间
使用:

tm* curr_tm = gmtime(&now);    

5、char *asctime(const struct tm *timeptr):
函数描述:tm结构体表示的时间返回为可读的字符串类型
参数:tm结构体类型的指针。
返回值: c字符串,包含可读格式的日期时间信息
使用:

char* curr_time2 = asctime(curr_tm);  

注:函数2 = 函数3/4 + 函数5; // 函数2实现的功能与3/4+5实现的一致

6、size_t strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr):
函数描述:根据 format 中定义的格式化规则,格式化结构 timeptr 表示的时间,并把它存储在 str
参数:
str:这是指向目标数组的指针,用来复制产生的 C 字符串。
maxsize:这是被复制到 str 的最大字符数。
format:指定的 C 格式字符串。
使用:

time_t now = time(nullptr);  
tm* curr_tm = localtime(&now);  // 返回的结构体存储位置未知,不知何时释放,因此推荐使用安全版本。  
char time[80] = {0};  
strftime(time, 80, "%Y-%m-%d %H:%M:%S", curr_tm);  

参考资料:
1、C++ 日期 & 时间全部函数使用介绍(推荐):C++ 日期 & 时间
2、函数6参考资料:C 库函数 - strftime()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++获取、打印当前时间:time、localtime 的相关文章

  • 如何准确同步iPhone之间的时间?

    我正在编写一个应用程序 需要我准确同步大量 iPhone 上的时间 精确到不到一秒 据我所知 GPS 的时间功能不可用 如果我通过互联网同步 那么最大的问题是网络延迟 收到请求答复之前的延迟估计为往返的一半 但我期望这个延迟有多准确 是否值
  • time.struct_time 的 structseq() 错误

    这是给出错误的 python 脚本 gt gt gt import time gt gt gt t gt gt gt t append time struct time tm year 2000 tm mon 11 tm mday 30 t
  • 如何在 R 中创建具有特定 MA(或 q)项的 ARIMA 模型

    我无法确定使用 arima stats 创建 ARMA 模型的特定方法 该模型具有特定的 MA 项 而这些项不仅仅由最大数指定 我的意思是 我需要指定一个 AR 1 MA 1 4 模型 该模型应该产生截距 AR1 项 MA1 项和 MA4
  • 将格式化日期转换回unix

    我将使用哪个函数将自定义格式的日期转换回 Unix 纪元时间 例如 Ymd gt U 我在看date U strtotime 20140525 但我不确定如何适应原始格式Ymd 该函数如何知道输入格式是 YYYYMMDD 因为它看起来有效
  • 获取日期 ISO 字符串而不转换为 UTC 时区

    JavaScript 有没有办法获取新 Date 对象的 ISO 字符串 同时保持原始本地时区 即不转换为 UTC 时间部分设置为午夜 无需通过各个日期部分手动重建新日期并重新格式化结果 我一直在努力this https www w3sch
  • time.time_ns() 在 macOS 上未正确返回纳秒?

    从 Python 3 7 开始 我们有了支持纳秒分辨率的新时间函数 但是 我不确定如何time time ns 应该可以工作 看下面的例子 gt gt gt for n in range 10 time sleep random rando
  • 减去 r 中的时间

    我有一个包含两个时间变量的数据集 EndVisitTime and BoxTime 我每天都会制作数据集 因此这些观察结果都是在一天内进行的 Date lt 2014 8 12 EndVisitTime lt c 00 00 32 00 0
  • 比较列表推导式和显式循环(3 个数组生成器比 1 个 for 循环快)

    我做了作业 无意中发现算法的速度出现了奇怪的不一致 这是相同函数的代码的 2 个版本 但有 1 个区别 在第一个版本中 我使用 3 次数组生成器来过滤某些数组 在第二个版本中 我使用 1 个 for 循环和 3 个 if 语句来执行相同的过
  • 更精确的 distance_of_time_in_words

    distance of time in words很棒 但有时不够精细 我需要一个能够以文字报告准确时间距离的函数 例如 上午 7 50 到上午 10 10 的距离应该是 2 小时 20 分钟 而不是 大约 2 小时 或其他什么distan
  • 长时间运行进程的超时和 Windows 服务 (Python)

    我有一个使用 python 创建的简单 Windows 服务 我的问题是 我不知道该服务需要多长时间才能完成 可能需要 15 秒 也可能需要 4 个多小时 具体取决于需要对数据执行的操作 4个多小时的情况很少见 但我也遇到过这种情况 以下是
  • 检查 LocalDateTime 是否在时间范围内

    我的时间 A 应该在时间 B 的 90 分钟范围内 之前和之后 示例 时间为 4 00 pm 时间 A 应介于 2 30 pm 90 到 5 30 pm 90 之间 尝试了以下方法 if timeA isAfter timeB minusM
  • 时间格式说明(Google Directions API)

    我已阅读用于提出方向请求的 Google Directions API 文档 URL 的示例如下 http maps googleapis com maps api directions json origin Brooklyn desti
  • Java JFormattedTextfield 时间格式化

    我在代码中使用时间时遇到了一些麻烦 txtDauer new JFormattedTextField txtDauer setFormatterFactory new DefaultFormatterFactory new DateForm
  • Golang - 如何在特定时间执行函数

    我需要在一天中的特定时间运行一个函数 例如 0010 0610 1210 1810 我目前的方法使用自动收报机for range time Tick 21600 time Second 我以这些时间间隔之一 例如 1210 手动启动该程序
  • 查明某个时间段是否与当前时间匹配

    我有一个这样的约会 just a example date time in the future start date H i time 60 60 24 7 time in the future end date H i time 60
  • 在 JavaScript 中,如何让函数在特定时间运行?

    我有一个托管仪表板的网站 我可以编辑页面上的 JavaScript 目前每五秒刷新一次 我现在正在尝试获得window print 每天早上8点跑步 我怎么能这样做呢 JavaScript 是not用于此目的的工具 如果您希望某些东西在每天
  • 如何在 Microsoft Excel 中获取两个日期之间的分钟差?

    我正在 Excel 中做一些工作 遇到了一些问题 我正在使用的仪器保存测量的日期和时间 我可以使用以下格式将此数据读入 Excel A B 1 Date Time 2 12 11 12 2 36 25 3 12 12 12 1 46 14
  • 同步通过 LAN 电缆连接的两台 Windows 7 计算机之间的时间

    我有许多笔记本电脑 它们运行我们的应用程序 同时通过以太网电缆成对连接 但未连接到任何外部网络或互联网 时间 我需要连接对来同步其系统时间 但由于每台计算机都需要能够与任何其他计算机同步 因此我无法将一台计算机定义为时间服务器 而另一台计算
  • 如何通过使用内置的 Date 类来节省时间?

    这个问题的目的是使用内置的 Date 类收集日期 时间计算的解决方案 而不是编写冗长的复杂函数 我会自己写一些答案 如果有人想出一些非常聪明的东西 我会接受答案 但这主要是作为解决方案的集合 因为我经常看到处理日期的代码过于复杂 请记住这是
  • 仅以 int 形式显示和保存小时数

    如何仅显示小时并使用 int 变量 我的意思是打印时间 例如 20 30 44 PM 我只想存储小时 即 int 变量中的 20 小时 怎么做 有谁知道的话可以告诉我密码吗 谢谢 尝试使用日历get http docs oracle com

随机推荐