当前位置: 首页 > news >正文

Linux C编程基础知识(日期与时间操作)

常用API介绍

函数

功能说明

time_t time(time_t *t)

获取当前 Unix 时间戳(秒级),参数传 NULL 即可;

struct tm *localtime(const time_t *timep)

将时间戳转换为本地时间的分解结构体(含时区);

struct tm *gmtime(const time_t *timep)

将时间戳转换为UTC 时间的分解结构体(无时区);

char *ctime(const time_t *timep)

将时间戳转为可读字符串(如 "Mon Feb 09 12:34:56 2026");

char *asctime(const struct tm *tm)

将分解结构体转为可读字符串(格式同 ctime);

size_t strftime(char *s, size_t max, const char *format, const struct tm *tm)

自定义格式化时间字符串(核心);

clock_t clock(void)

获取程序启动后的 CPU 时钟滴答数,用于计时;

strftime 是最常用的时间格式化函数,支持自定义输出格式(如 YYYY-MM-DD HH:MM:SS),核心格式符如下:

格式符

含义

示例

%Y

4 位年份

2026

%m

2 位月份(补 0)

02

%d

2 位日期(补 0)

09

%H

24 小时制小时

12

%M

2 位分钟

34

%S

2 位秒数

56

%A

星期全称

Monday

%a

星期简称

Mon

示例:获取当前时间(时间戳 + 可读格式)
#include <stdio.h> #include <time.h> int main() { // 1. 获取当前Unix时间戳(秒级) time_t now = time(NULL); printf("当前Unix时间戳(秒):%lld\n", (long long)now); // 强转long long避免溢出 // 2. 转换为本地时间的分解结构体 struct tm *local_tm = localtime(&now); if (local_tm == NULL) { // 容错:转换失败返回NULL perror("localtime failed"); return 1; } // 3. 直接输出可读字符串(ctime) printf("本地时间(ctime):%s", ctime(&now)); // 自带换行 // 4. 解析分解结构体的字段(注意:年份是1900偏移,月份从0开始) printf("分解时间字段:\n"); printf(" 年:%d\n", local_tm->tm_year + 1900); // tm_year = 年份-1900 printf(" 月:%d\n", local_tm->tm_mon + 1); // tm_mon = 0~11(1月=0) printf(" 日:%d\n", local_tm->tm_mday); // 日:1~31 printf(" 时:%d\n", local_tm->tm_hour); // 时:0~23 printf(" 分:%d\n", local_tm->tm_min); // 分:0~59 printf(" 秒:%d\n", local_tm->tm_sec); // 秒:0~60(闰秒) printf(" 星期:%d\n", local_tm->tm_wday); // 星期:0~6(周日=0) return 0; }
示例:格式化输出「年 - 月 - 日 时:分: 秒」
#include <stdio.h> #include <time.h> int main() { time_t now = time(NULL); struct tm *local_tm = localtime(&now); if (local_tm == NULL) { perror("localtime failed"); return 1; } // 定义缓冲区存储格式化结果(足够容纳时间字符串) char time_buf[64]; // 自定义格式:YYYY-MM-DD HH:MM:SS strftime(time_buf, sizeof(time_buf), "%Y-%m-%d %H:%M:%S", local_tm); printf("格式化本地时间:%s\n", time_buf); // 输出:2026-02-09 12:34:56 // 另一种格式:星期 月 日 时:分:秒 年 strftime(time_buf, sizeof(time_buf), "%A %b %d %H:%M:%S %Y", local_tm); printf("完整格式:%s\n", time_buf); // 输出:Monday Feb 09 12:34:56 2026 return 0; }
http://www.jsqmd.com/news/602372/

相关文章:

  • 第一题笔记 以及第七题和第九题可检测通过的代码
  • Tesseract OCR:开源文字识别引擎的终极完整指南
  • 阿里CosyVoice3镜像功能体验:自然语言控制语音风格,情感表达更精准
  • 告别模拟器:APK-Installer让Windows运行安卓应用的创新方案
  • 终极指南:三步解锁Cursor Pro完整功能,免费体验AI编程无限潜力
  • 小龙虾大战傀儡师
  • 电脑端微信防撤回
  • 如何高效下载B站视频?Downkyi五步法轻松掌握
  • Eigen库FFT实战:如何用自带FFT替代FFTW3提升计算效率(附避坑指南)
  • 2025届学术党必备的五大AI辅助写作网站推荐
  • 揭秘济南时行水旋柜,品牌和服务在行业排名如何? - 工业品网
  • AI智能文档扫描仪部署教程:支持多种文档类型的通用方案
  • Python编写Flask接口如何防止爬虫抓取_使用User-Agent与频率限制
  • EmuDeck:革新Steam Deck模拟器体验的一站式配置工具
  • 2026年4月全球工程管理系统推荐:TOP5口碑产品评测比较知名 - 品牌推荐
  • 高尔夫球检测数据集VOC+YOLO格式9489张1类别
  • 活字格低代码 —— 企业级数字化转型的首选利器
  • 5分钟掌握ModTheSpire:打造你的专属Slay The Spire模组体验
  • PEAL+: Enhancing Low-overlap Point Cloud Registration with Prior-guided Attention and Iterative Refi
  • 2026年南京及周边专业机构名录盘点 - 资讯焦点
  • YOLO26最新创新改进系列:YOLO26+自动计数+自动统计各个类别数量!弯道超车,丰富文章工作量!!
  • 从安装到批量预测:手把手带你用Uni-Mol Docking V2完成一次虚拟筛选(附ABL1案例代码)
  • 2026年分切复卷机好用推荐,设备精良的制造厂哪家更值得选 - mypinpai
  • 一键生成全篇论文!精选7款AI写论文工具亲测,期刊论文写作不愁!
  • 高效掌握BilibiliDown:B站音视频全流程下载指南
  • Pixel Mind Decoder 效果深度评测:多场景文本情绪识别准确率对比
  • Phi-4-mini-reasoning实战手册:日志分析+错误定位+服务健康检查
  • 彻底修复Windows更新问题的终极指南:Reset Windows Update Tool详解
  • 静态库膨胀、符号冗余、STL绑架——C++边缘编译三大“隐性内存杀手”(附objdump+readelf精准定位指南)
  • 科技论文写作用哪个ai好?实测四款写论文的AI指南,为你打造高质量论文