时间和日期-time和gettimeofday

本文介绍了如何使用time和gettimeofday获取日历时间,其中gettimeofday提供微秒级精度。同时,文章讲解了gmtime、localtime及mktime在时间转换中的作用,以及如何使用strftime和strptime进行日期时间的格式化操作。
摘要由CSDN通过智能技术生成

1、日历时间

      即UTC(Coordinated Univarsal Time)时间,自公元1970年1月1日 00:00:00这一特定时间以来经过的秒数。

2、获取当前时间和日期

#include <time.h>
time_t time(time_t *tloc);
返回值:若成功,返回时间值;若出错,返回-1

#include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
返回值:总是返回0
struct timeval {
    time_t      tv_sec;     /* 秒 */
    suseconds_t tv_usec;    /* 微秒 */
};

说明:1、time和gettimeofday都可以获取日历时间,但gettimeofday提供更高的精度,可到微秒级

           2、秒不包含微秒

3、秒和时间结构之间的转换

#include <time.h>
struct tm *gmtime(const time_t *timep);
struct tm *localtime(const time_t *timep);
返回值:若成功,返回tm结构的指针;若出错,返回NULL

time_t mktime(struct tm *tm);
返回值:若成功,返回日历时间;若出错,返回-1
struct tm {
    int tm_sec;    /* Seconds (0-60) */
    int tm_min;    /* Minutes (0-59) */
    int tm_hour;   /* Hours (0-23) */
    int tm_mday;   /* Day of the month (1-31) */
    int tm_mon;    /* Month (0-11) */
    int tm_year;   /* Year - 1900 */
    int tm_wday;   /* Day of the week (0-6, Sunday = 0) */
    int tm_yday;   /* Day in the year (0-365, 1 Jan = 0) */
    int tm_isdst;  /* Daylight saving time */
};

说明:gmtime将日历时间转换为UTC时间的年、月、日、时、分、秒;

           localtime将日历时间转换为本地时间;

           mktime将年、月、日等信息转换为秒数

4、格式化日期和时间

#include <time.h>
size_t strftime(char *s, size_t max, const char *format, const struct tm *tm);
返回值:若成功,返回存入数组的字符数;若出错,返回0

char *strptime(const char *s, const char *format, struct tm *tm);
返回值:若成功,返回上次解析字符的下一个字符的指针;若出错,返回NULL

说明:1、strftime将时间依据格式转换成字符串并保存到buf中;

                strptime从字符串中分解出时间信息,保存到tm结构中

2、strftime的转换说明:

格式 说明 实例 格式 说明 实例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值