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

2023-11-08 19:10

本文主要是介绍C++获取、打印当前时间:time、localtime,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

总结:
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()

这篇关于C++获取、打印当前时间:time、localtime的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/371911

相关文章

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r