获取时间,并将时间按一定的格式输出
一、时间函数
1.获取秒数 CTS 北京时间 2.转换为需要个格式 系统时间的获取: 1.time 获得秒数 time_t time(time_t *t); time_t 类型变量
第一种 准备一个变量
time_t tm; time(&tm)
第二种
tm = time(NULL); 功能: 获得1970年到现在的秒数 第一步,先获得秒数再转成其他时间 参数: t:存放秒数的空间首地址 返回值: 成功返回1970年到现在的秒数 失败返回-1
2.localtime struct tm *localtime(const time_t *timep); 功能: 将一个秒数转化成日历时间 参数: timep:保存秒数空间的地址 返回值: 成功返回保存日历时间结构体的指针 失败返回NULL
3.ctime char *ctime(const time_t *timep);//date 功能: 将时间秒数转化成字符串 参数: timep:保存时间空间的地址 返回值: 成功返回获得时间字符串的首地址 失败返回NULL
定义的时间结构体
二、按一定要求输出时间的函数
strftime
函数用于将时间格式化为字符串。它允许你指定一个格式字符串,并将格式化的时间存储在提供的缓冲区中。
可以根据需求来指定不同的格式化指令来输出不同的日期和时间格式。以下是一些常见的格式化指令:
%a
- 星期几的简写(例如,Sun, Mon)。%A
- 星期几的全称(例如,Sunday, Monday)。%b
- 月份的简写(例如,Jan, Feb)。%B
- 月份的全称(例如,January, February)。%c
- 适合本地的日期和时间表示(例如,Thu Mar 3 14:31:02 2005)。%d
- 月份中的第几天(01 到 31)。%H
- 小时(24小时制,00 到 23)。%I
- 小时(12小时制,01 到 12)。%j
- 一年中的第几天(001 到 366)。%m
- 月份(01 到 12)。%M
- 分钟(00 到 59)。%p
- AM 或 PM。%S
- 秒(00 到 59)。%U
- 一年中的第几周,以星期日为一周的开始。%w
- 星期几(0 到 6,0 表示星期日)。%W
- 一年中的第几周,以星期一为一周的开始。%x
- 适合本地的日期表示(例如,12/31/05)。%X
- 适合本地的时间表示(例如,23:59:01)。%y
- 年份的后两位(00 到 99)。%Y
- 年份的全称(例如,2005)。%Z
- 时区的名称。
示例
#include <stdio.h>
#include <time.h>
int main() {
time_t now;
time(&now);
struct tm *local_time = localtime(&now);
char buffer[80];
// 格式化为不同的日期和时间格式
strftime(buffer, sizeof(buffer), "今天是 %A, %B %d, %Y", local_time);
printf("%s\n", buffer);
strftime(buffer, sizeof(buffer), "当前时间(年-月-日 时:分:秒): %Y-%m-%d %H:%M:%S", local_time);
printf("%s\n", buffer);
strftime(buffer, sizeof(buffer), "今天是星期 %A, 月份 %B, 日 %d", local_time);
printf("%s\n", buffer);
strftime(buffer, sizeof(buffer), "一年中的第 %j 天, 周数 %U (星期日起始)", local_time);
printf("%s\n", buffer);
strftime(buffer, sizeof(buffer), "时间:%I:%M:%S %p", local_time);
printf("%s\n", buffer);
strftime(buffer, sizeof(buffer), "适合本地的日期和时间表示:%c", local_time);
printf("%s\n", buffer);
return 0;
}