C语言学习,标准库 <time.h>(1)

<time.h> 是 C 标准库中的一个头文件,提供了处理和操作日期和时间的函数和类型。这个头文件中的函数用于获取当前时间、设置时间、格式化时间和计算时间差等。<time.h> 头文件定义了四个变量类型、两个宏和各种操作日期和时间的函数。

1. 时间类型
time_t: 用于表示日历时间(通常是自协调世界时(UTC)1970年1月1日00:00:00以来的秒数)。
struct tm: 用于表示分解的时间(年、月、日、小时、分钟、秒等)。
2. 获取当前时间
time_t time(time_t *tloc): 获取当前时间,并将其存储在 tloc 指向的 time_t 对象中。如果 tloc 为 NULL,则只返回当前时间。
3. 格式化时间
char *ctime(const time_t *timer): 将 time_t 类型的时间转换为字符串,并返回一个指向该字符串的指针。字符串的格式为:Www Mmm dd hh:mm:ss yyyy\n。
char *strftime(char *str, size_t maxsize, const char *format, const struct tm *timeptr): 根据 format 指定的格式,将 timeptr 指向的时间转换为字符串,并存储在 str 中。maxsize 指定了 str 的最大长度。
4. 分解时间
struct tm *localtime(const time_t *timer): 将 time_t 类型的时间转换为本地时间,并返回一个指向 struct tm 对象的指针。
struct tm *gmtime(const time_t *timer): 将 time_t 类型的时间转换为协调世界时(UTC),并返回一个指向 struct tm 对象的指针。
struct tm *mktime(struct tm *timeptr): 将 timeptr 指向的时间转换为 time_t 类型的时间(考虑夏令时),并更新 timeptr 的值。
5. 计算时间差
double difftime(time_t time1, time_t time0): 计算 time1 和 time0 之间的时间差(以秒为单位)。
6. 睡眠函数
unsigned int sleep(unsigned int seconds): 使程序暂停执行指定的秒数。
int usleep(useconds_t useconds): 使程序暂停执行指定的微秒数(百万分之一秒)。

示例:

#include <stdio.h>  
#include <time.h>  
  
int main() {  
    time_t rawtime;  
    struct tm * timeinfo;  
  
    // 获取当前时间  
    time(&rawtime);  
  
    // 将时间转换为本地时间  
    timeinfo = localtime(&rawtime);  
  
    // 打印当前时间  
    printf("当前时间: %s", asctime(timeinfo));  
  
    // 使用 strftime 格式化时间  
    char buffer[80];  
    strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", timeinfo);  
    printf("格式化后的时间: %s\n", buffer);  
  
    // 计算时间差  
    time_t start = time(NULL);  
    sleep(2);  
    time_t end = time(NULL);  
    printf("时间差: %.2f 秒\n", difftime(end, start));  
  
    return 0;  
}

猜你喜欢

转载自blog.csdn.net/xuann/article/details/143352344