📜  C++日期和时间(1)

📅  最后修改于: 2023-12-03 14:59:52.021000             🧑  作者: Mango

C++日期和时间

在C++中,有很多方式可以处理日期和时间。我们可以使用标准库中的 <ctime> 头文件或 BOOST 库中的日期和时间功能。下面将对这两种方法进行介绍。

在C++标准库中处理日期和时间

在C++标准库中,使用 <ctime> 头文件来处理日期和时间。该头文件中主要包含了以下三个函数:

time()
#include <ctime>

std::time_t time(std::time_t* timer)

该函数返回当前的时间(自1970年1月1日以来的秒数),并存储在 timer 所指向的变量中。

localtime()
#include <ctime>

std::tm* localtime(const std::time_t* timer)

该函数将 timer 所指向的时间转换为本地时间,并以 std::tm 的结构体形式返回。

strftime()
#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库处理日期和时间

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++中处理日期和时间的两种方法。根据不同的需求,我们可以选择合适的方式来处理日期和时间。