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库的时间处理函数的相关介绍和用法示例。