时间编程

使用Linux时间编程相关函数,编写程序,通过实现与函数asctime相同功能的函数获取本地时间,以格式字符串方式显示

概念:日历时间,通过time_t数据类型来表示,从一个时间点(通常是1970年1月1日0时0分0秒)到此时的秒数。

格林威治时间:由英国皇家格林尼治天文台提供的标准时间。

本地时间:根据格林威治时间和本地时区计算出的时间。

1、获取当前的系统时间--time

头文件:#include<time.h>

函数原型:time_t time(time_t *timer)

参数说明:timer:timer=NULL时得到系统日历时间,timer等于时间数值时,用于设置日历时间。

返回值:返回日历时间。

2、通过日历时间获得本地时间--localtime

函数原型:struct tm *localtime(const time_t *clock)

参数说明:clock指向日历时间的指针变量。

返回值:返回指向tm结构体的指针。

3、通过日历时间获得格林威治时间---gmtime

函数原型:struct tm *gmtime(long *clock)

参数说明:clock指向日历时间的指针变量

返回值:返回指向tm结构体的指针。

4、转换日期和时间为ASCII码---asctime

函数原型:char *asctime(const struct tm *tblock)

参数说明:tblock记录时间的tm结构

返回值:返回字符串格式:星期,月,日,小时:分:秒,年。

5、把日期和时间转换为字符串---ctime

函数原型:char *ctime(const time_t *time);

参数说明:time指向日历时间的指针变量,该参数应由函数time函数获得。

返回值:返回字符串格式:星期,月,日,小时;分;秒,年

6、取得目前时间-----gettimeofday

函数原型:int gettimeofday(struct timeval *tv,struct timezone *tz);

参数说明:tv当前timeval结构;tz时区结构。

返回值:成功0,失败-1.

7、把日期和时间转换为字符串---settimeofday

函数原型:int settimeofday(const struct timeval *tv,const struct timezone *tz);

参数说明:tv:当前timeval结构;tz:时区结构。

返回值:成功0,失败-1.

 

tm结构体:是C语言中用于表示日期和时间的结构体,

struct tm

{

int tm_sec;//表示秒数,在0-61之间,多出来的2秒是用来处理跳秒问题用的

int tm_min;//表示分数,0-59之间

int tm_hour;//表示时数,0-23之间

int tm_mday;//表示本月第几日,[1,31]之间

int tm_mon;//表示本年第几月[0,11]

int tm_year;//从1900到现在的年数

int tm_wday;//本周第几日,[0-6]之间

int tm_yday;//本年第几日[0,365],闰年有366

int tm_isday;//是否为日光节约时间

};

sprintf---把格式化的数据写入某个字符串

函数原型:int sprintf(char *buffer,const char *format);

返回值:字符串长度(strlen)

注意sprintf输出的数据到字符串buffer中,printf将数据输出到命令行。

获取本地时间,以格式字符串方式显示

总结:通过本实验可以看出,要获得本地时间字符串,一般需要三个步骤:

1、通过time函数获得日历时间

2、通过localtime函数将日历时间转化为本地时间

3、通过asctime函数将本地时间转化为字符串

当然,可以不经过步骤2),直接使用ctime从日历时间获得时间字符串。

 

posted on   gary_123  阅读(434)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示