In C++, the <chrono> library provides a convenient way to work with time durations and time points. With std::chrono, you can easily obtain the current date and time. Let’s see how we can do this.
Including the necessary header
First, we need to include the <chrono> header in our code:
#include <chrono>
Getting the current time point
To obtain the current time point, we’ll use the std::chrono::system_clock::now() function. This function returns the current time point based on the system clock. Here’s an example:
auto currentTime = std::chrono::system_clock::now();
The currentTime variable will now hold the current time point.
Converting the time point to a specific format
If you want to obtain the current date and time in a specific format, you can use the std::chrono::system_clock::to_time_t() function along with std::localtime() or std::gmtime() to convert the time point to a std::tm structure.
Here’s an example that converts the time point to a std::tm structure and extracts the current date and time components:
std::time_t currentTimeT = std::chrono::system_clock::to_time_t(currentTime);
std::tm* currentTimeStruct = std::localtime(¤tTimeT);
int year = currentTimeStruct->tm_year + 1900;
int month = currentTimeStruct->tm_mon + 1;
int day = currentTimeStruct->tm_mday;
int hour = currentTimeStruct->tm_hour;
int minute = currentTimeStruct->tm_min;
int second = currentTimeStruct->tm_sec;
std::cout << "Current date and time: " << year << "-" << month << "-" << day << " " << hour << ":" << minute << ":" << second << std::endl;
The code above uses std::localtime() to convert the time point to a tm structure and then extracts the individual components using the appropriate members of the structure.
Conclusion
With std::chrono, obtaining the current date and time in C++ is straightforward. By using std::chrono::system_clock::now() to get the time point and then converting it to the desired format, you can easily access the current date and time information.
For more information, you can refer to the C++ reference for std::chrono and its related functions and classes.
#cplusplus #datetime