C 语言格式化输出时间

本文部分内容借助于 AI 生成~

struct tm 是C语言标准库 <time.h> 中自带的结构体类型之一。它用于表示日历时间和日期时间的组成部分。

struct tm 结构体定义了以下成员变量:

  • int tm_sec: 秒(0-59)
  • int tm_min: 分钟(0-59)
  • int tm_hour: 小时(0-23)
  • int tm_mday: 一月中的第几天(1-31)
  • int tm_mon: 月份(0-11,0 表示一月,11 表示十二月)
  • int tm_year: 年份(以 1900 为基准)
  • int tm_wday: 一周中的第几天(0-6,0 表示周日,6 表示周六)
  • int tm_yday: 一年中的第几天(0-365)
  • int tm_isdst: 夏令时标识符(正数表示 DST 有效,0 表示 DST 无效,负数表示 DST 信息不可用)

这些成员变量可以用于存储和处理日历时间和日期时间的信息。可以使用函数如 gmtime()localtime() 将时间戳(time_t 类型)转化为 struct tm 结构体,也可以使用 mktime()struct tm 结构体转化为时间戳。

C o d e Code Code

#include <stdio.h>
#include <time.h>

int main() {
	// time_t 类型是表示时间的整数类型
	time_t now;
	// time() 函数接受一个指向 time_t 变量的指针作为参数,并将当前时间的时间戳保存到该变量中
	time(&now);
	// struct tm 是一个结构体,用来存储时间的各个部分,如年、月、日、小时、分钟、秒等
	// localtime() 将 time_info 变量的时间戳转换为本地时间,并将结果保存到 now 指针变量中
	struct tm* time_info = localtime(&now);
	
	int y = time_info->tm_year + 1900;
	int m = time_info->tm_mon + 1;
	int d = time_info->tm_mday;
	int h = time_info->tm_hour;
	
	printf("---%04d-%02d-%02d %02d:00---\n", y, m, d, h);
	// asctime() 函数接受一个指向 struct tm 结构体的指针作为参数,返回一个格式化的时间字符串
	// 并且返回的字符串末尾有一个'\n'.如果不想要这个'\n'可以这样:
	// string s = asctime(time_info); s = s.substr(0, s.size() - 1);
	printf("---%s---", asctime(time_info));
	
	return 0;
}

输出:

---2023-12-01 21:00---
---Fri Dec 01 21:01:12 2023
---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值