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(×tamp) << std::endl; }
在上述代码中,strptime()函数将字符串转换为struct tm类型,mktime()函数将struct tm类型转换为time_t类型,并输出到控制台。结果示例:转换后的时间是:Fri Jul 30 11:52:26 2021
以上就是C++中ctime库的时间处理函数的相关介绍和用法示例。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/154402.html