C++:
获取当前日期
如何实现:
C++ 提供了几种获取当前日期的方法,包括 C++ 标准库和第三方库,如 Boost。以下示例展示了如何完成这个任务。
使用 <chrono>
(C++20 及以后版本)
C++20 在 <chrono>
库中引入了更多功能,使得获取当前日期变得直截了当:
#include <iostream>
#include <chrono>
#include <format> // 对于 std::format (C++20)
int main() {
auto current_time_point = std::chrono::system_clock::now(); // 捕获当前时间
auto current_time_t = std::chrono::system_clock::to_time_t(current_time_point); // 转换为 time_t
// 将时间格式化为可读格式
std::cout << "当前日期: " << std::format("{:%Y-%m-%d}", std::chrono::system_clock::to_time_t(current_time_point)) << std::endl;
return 0;
}
示例输出:
当前日期: 2023-03-15
使用 <ctime>
对于使用旧版本 C++ 或偏好传统 C 库的程序员:
#include <iostream>
#include <ctime>
int main() {
std::time_t t = std::time(0); // 获取当前时间
std::tm* now = std::localtime(&t);
std::cout << "当前日期: "
<< (now->tm_year + 1900) << '-'
<< (now->tm_mon + 1) << '-'
<< now->tm_mday
<< std::endl;
return 0;
}
示例输出:
当前日期: 2023-03-15
使用 Boost Date_Time
对于使用 Boost 库的项目,Boost Date_Time 库提供了一个获取当前日期的替代方法:
#include <iostream>
#include <boost/date_time.hpp>
int main() {
// 使用 Boost 的格里历日历获取当前日
boost::gregorian::date today = boost::gregorian::day_clock::local_day();
std::cout << "当前日期: " << today << std::endl;
return 0;
}
示例输出:
当前日期: 2023-Mar-15
这些示例为使用 C++ 处理日期提供了基本基础,对广泛的应用程序至关重要。