C++格式化输出时间

目录

前言

格式化时间代码实现

time函数

struct tm结构体

localtime函数

put_time函数


前言

        使用time函数tm结构体local函数put_time函数实现格式化输出时间。

形如[2024-06-14 18:19:14]


格式化时间代码实现

void Print_Time()
{
    // 获取当前时间戳
    time_t now_time = time(nullptr);
    // 将time_t 转换为tm结构
    std::tm* local = localtime(&now_time);
    // 格式化输出当前时间
    std::cout << std::put_time(local, "%Y-%m-%d %H:%M:%S") << " ";
}
int main()
{
    Print_Time();
	return 0;
}

输出结果如下

2024-06-14 20:30:05


time函数

原型:time_t time(time_t *tloc);

头文件:<ctime>

返回值:当前时间的时间戳

参数:这是一个指向 time_t 类型对象的指针。如果此参数不为空(即不是nullptrNULL),则函数会将当前时间存储在这个对象中。如果此参数为空,则函数会忽略它。


struct tm结构体

struct tm
{
    int tm_sec;   // 秒数 - [0, 60] 包含闰秒
    int tm_min;   // 分钟数 - [0, 59]
    int tm_hour;  // 小时(24小时制) - [0, 23]
    int tm_mday;  // 一个月中的日期 - [1, 31]
    int tm_mon;   // 月份 - [0, 11]
    int tm_year;  //  从1900开始算的年份
    int tm_wday;  // 星期几 0表示周日 - [0, 6]
    int tm_yday;  // 一年中的第几天 - [0, 365]
    int tm_isdst; // 夏令时标识符
};

localtime函数

原型:struct tm *localtime(const time_t *timep);
头文件:<ctime>

返回值:函数返回一个指向 tm 结构体的指针,该结构体包含了本地时间的详细信息(日期、时间等)。如果函数失败,它将返回空指针(nullptr)。

参数:这是一个指向 time_t 类型对象的指针,该对象包含了一个以秒为单位的时间戳。


put_time函数

原型

        template <class charT>

        put_time( const struct tm* tmb, const charT* fmt);

头文件:<iomanip>

功能:用于格式化输出 tm 类型的数据。

返回值:函数返回对输入流os的引用,以便进行链式调用。

参数功能
const struct tm* tmb存取着待格式化输出的时间数据
const charT* fmt一个 C 风格的字符串,指定了日期和时间的格式。这个字符串可以包含多种格式说明符

格式说明符

%a缩写的星期几名称(如Sun)。
%A完整的星期几名称(如Sunday)。
%b缩写的月份名称(如Jan)。
%B完整的月份名称(如January)。
%c日期和时间的完整表示(如Wed Jun 30 21:49:08 2023\n\t)。
%C年份除以100的整数部分(如20表示2000-2099)。
%d一个月中的第几天(01-31)。
%D等同于%m/%d/%y。
%e一个月中的第几天(1-31),前面没有前导零。
%F等同于%Y-%m-%d(ISO 8601日期格式)。
%g与%G相同,但不包含世纪。
%G基于ISO 8601的年份(四位数)。
%h等同于%b。
%H小时(00-23)。
%I小时(01-12)。
%j一年中的第几天(001-366)。
%m月份(01-12)。
%M分钟(00-59)。
%n换行符。
%pAM或PM(用于12小时制)。
%r12小时制的时间表示(如11:11:04 PM)。
%R等同于%H:%M。
%S秒(00-60)。
%t水平制表符。
%T等同于%H:%M:%S。
%u星期几(1-7),1表示星期一,7表示星期天(与POSIX的%u不同)。
%U一年中的第几周,星期天作为一周的第一天(00-53)。
%VISO 8601的一年中的第几周(01-53)
%w星期几(0-6),0表示星期天。
%W一年中的第几周,星期一作为一周的第一天(00-53)。
%x日期表示(如06/30/2023)。
%X时间表示(如21:49:08)。
%y年份的最后两位(00-99)。
%Y年份(四位数)。
%%输出%字符。

感谢阅读

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值