获取时间,并将时间按一定的格式输出

一、时间函数

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

定义的时间结构体 

二、按一定要求输出时间的函数
  1. 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;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值