📅  最后修改于: 2023-12-03 14:59:52.021000             🧑  作者: Mango
在C++中,有很多方式可以处理日期和时间。我们可以使用标准库中的 <ctime>
头文件或 BOOST 库中的日期和时间功能。下面将对这两种方法进行介绍。
在C++标准库中,使用 <ctime>
头文件来处理日期和时间。该头文件中主要包含了以下三个函数:
#include <ctime>
std::time_t time(std::time_t* timer)
该函数返回当前的时间(自1970年1月1日以来的秒数),并存储在 timer
所指向的变量中。
#include <ctime>
std::tm* localtime(const std::time_t* timer)
该函数将 timer
所指向的时间转换为本地时间,并以 std::tm
的结构体形式返回。
#include <ctime>
std::size_t strftime(char* str, std::size_t count, const char* format, const std::tm* timeptr)
该函数将 timeptr
所指向的时间根据 format
所指定的格式转换为字符串,并存储在 str
所指向的字符数组中。转换后的字符串长度最长为 count
。
下面是一个示例程序:
#include <iostream>
#include <ctime>
int main() {
std::time_t now = std::time(nullptr); // 获取当前的时间
std::tm* t = std::localtime(&now); // 转换为本地时间
char buffer[80];
std::strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", t); // 格式化为字符串
std::cout << buffer << std::endl; // 输出格式化后的时间
}
运行结果:
2021-08-09 16:21:30
BOOST 是一个流行的 C++ 扩展库,它提供了一组方便的函数来处理日期和时间。下面是一个使用 BOOST 库来处理日期和时间的示例程序:
#include <iostream>
#include <boost/date_time.hpp>
int main() {
boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); // 获取当前的时间
std::cout << boost::posix_time::to_iso_extended_string(now) << std::endl; // 格式化为字符串
}
运行结果:
2021-08-09T16:21:30
以上就是在C++中处理日期和时间的两种方法。根据不同的需求,我们可以选择合适的方式来处理日期和时间。