您的位置:

C++中ctime库的时间处理函数

C++中的ctime库提供了一系列的时间处理函数,可以用于获取当前时间、获取时间戳、格式化输出时间等操作。本文将从以下几个方面进行详细的阐述。

一、获取当前时间

获取当前时间可以使用库函数time(),该函数返回自1970年1月1日以来经过的秒数。代码示例:
#include 
#include 
   

int main()
{
    time_t now = time(0);
    std::cout << "现在的时间是:" << ctime(&now) << std::endl; 
}

   
  
在上述代码中,ctime()函数将time_t类型的时间转换为字符串,并输出到控制台。结果示例:现在的时间是:Fri Jul 30 11:52:26 2021

二、获取时间戳

时间戳是指从某个固定时间点开始计时的秒数,通常以1970年1月1日00:00:00 UTC为起点。获取时间戳可以使用库函数time(),将其返回值转换为long类型即可。代码示例:
#include 
#include 
   

int main()
{
    time_t now = time(0);
    long timestamp = static_cast
    (now);
    std::cout << "时间戳是:" << timestamp << std::endl;
}

    
   
  
在上述代码中,static_cast (now)将time_t类型的时间转换为long类型,并输出到控制台。结果示例:时间戳是:1627624360

三、格式化输出时间

格式化输出时间可以使用库函数strftime(),该函数将time_t类型的时间按照指定的格式进行格式化输出。代码示例:
#include 
#include 
    

int main()
{
    time_t now = time(0);
    char buffer[80];
    strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localtime(&now));
    std::cout << "格式化输出时间是:" << buffer << std::endl; 
}

    
   
在上述代码中,strftime()函数将time_t类型的时间进行格式化输出,并将结果存储在buffer数组中。结果示例:格式化输出时间是:2021-07-30 11:52:26

四、计算时间差

计算时间差可以使用difftime()函数,该函数用于计算两个time_t类型时间的差值(以秒为单位)。代码示例:
#include 
#include 
    

int main()
{
    time_t start = time(0);
    // 程序运行一段时间
    time_t end = time(0);
    double seconds = difftime(end, start);
    std::cout << "程序运行了 " << seconds << " 秒" << std::endl; 
}

    
   
在上述代码中,difftime()函数用于计算两个时间的差值,并将结果存储在double类型的seconds中。结果示例:程序运行了 10 秒

五、根据时间字符串获取时间

根据时间字符串获取time_t类型的时间可以使用库函数strptime(),该函数将字符串转换为struct tm类型,再进一步转换为time_t类型。代码示例:
#include 
#include 
    

int main()
{
    struct tm tm = {};
    strptime("2021-07-30 11:52:26", "%Y-%m-%d %H:%M:%S", &tm);
    time_t timestamp = mktime(&tm);
    std::cout << "转换后的时间是:" << ctime(&timestamp) << std::endl;
}

    
   
在上述代码中,strptime()函数将字符串转换为struct tm类型,mktime()函数将struct tm类型转换为time_t类型,并输出到控制台。结果示例:转换后的时间是:Fri Jul 30 11:52:26 2021 以上就是C++中ctime库的时间处理函数的相关介绍和用法示例。