Formatting Time Output with put_time
When you need to display date and time in a specific format, C++ provides the std::put_time manipulator, which works with output streams to format a struct tm using a format string. This feature allows you to control exactly how your date and time values appear, making it easy to produce output like '2024-06-15 13:45:30' or any other custom format you require. The std::put_time manipulator is especially useful when you want your program's output to match user expectations or external requirements.
main.cpp
123456789101112131415161718#include <iostream> #include <iomanip> #include <ctime> int main() { std::tm timeinfo = {}; timeinfo.tm_year = 2024 - 1900; // Years since 1900 timeinfo.tm_mon = 5; // 0-based month (June) timeinfo.tm_mday = 15; // Day of the month timeinfo.tm_hour = 13; // Hour (24-hour clock) timeinfo.tm_min = 45; // Minutes timeinfo.tm_sec = 30; // Seconds std::cout << "Formatted time: " << std::put_time(&timeinfo, "%Y-%m-%d %H:%M:%S") << std::endl; }
The format string you provide to std::put_time uses special format specifiers, each beginning with a percent sign (%). Some of the most common specifiers include:
%Y: Four-digit year;%m: Two-digit month (01–12);%d: Two-digit day of the month (01–31);%H: Two-digit hour in 24-hour format (00–23);%M: Two-digit minute (00–59);%S: Two-digit second (00–60).
By combining these specifiers, you can create a wide range of date and time formats to suit your needs.
main.cpp
123456789101112131415#include <iostream> #include <iomanip> #include <ctime> int main() { std::tm timeinfo = {}; timeinfo.tm_year = 2024 - 1900; timeinfo.tm_mon = 0; // January timeinfo.tm_mday = 1; std::cout << "Formatted date: " << std::put_time(&timeinfo, "%A, %B %d, %Y") << std::endl; }
You can customize your output format for different display needs by changing the format string passed to std::put_time. This flexibility is helpful when generating logs, user-facing reports, or file names that require a specific date and time layout. Whether you want a compact numeric format, a verbose human-readable string, or something in between, you can achieve it by mixing and matching the available specifiers.
std::put_time is available in C++11 and later, and works with output streams such as std::cout, std::ostringstream, and file streams. Always ensure your compiler supports at least C++11 to use this feature.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
What are some examples of custom date and time formats I can create with `std::put_time`?
How do I use `std::put_time` in a C++ program?
Can you explain more format specifiers available for `std::put_time`?
Чудово!
Completion показник покращився до 11.11
Formatting Time Output with put_time
Свайпніть щоб показати меню
When you need to display date and time in a specific format, C++ provides the std::put_time manipulator, which works with output streams to format a struct tm using a format string. This feature allows you to control exactly how your date and time values appear, making it easy to produce output like '2024-06-15 13:45:30' or any other custom format you require. The std::put_time manipulator is especially useful when you want your program's output to match user expectations or external requirements.
main.cpp
123456789101112131415161718#include <iostream> #include <iomanip> #include <ctime> int main() { std::tm timeinfo = {}; timeinfo.tm_year = 2024 - 1900; // Years since 1900 timeinfo.tm_mon = 5; // 0-based month (June) timeinfo.tm_mday = 15; // Day of the month timeinfo.tm_hour = 13; // Hour (24-hour clock) timeinfo.tm_min = 45; // Minutes timeinfo.tm_sec = 30; // Seconds std::cout << "Formatted time: " << std::put_time(&timeinfo, "%Y-%m-%d %H:%M:%S") << std::endl; }
The format string you provide to std::put_time uses special format specifiers, each beginning with a percent sign (%). Some of the most common specifiers include:
%Y: Four-digit year;%m: Two-digit month (01–12);%d: Two-digit day of the month (01–31);%H: Two-digit hour in 24-hour format (00–23);%M: Two-digit minute (00–59);%S: Two-digit second (00–60).
By combining these specifiers, you can create a wide range of date and time formats to suit your needs.
main.cpp
123456789101112131415#include <iostream> #include <iomanip> #include <ctime> int main() { std::tm timeinfo = {}; timeinfo.tm_year = 2024 - 1900; timeinfo.tm_mon = 0; // January timeinfo.tm_mday = 1; std::cout << "Formatted date: " << std::put_time(&timeinfo, "%A, %B %d, %Y") << std::endl; }
You can customize your output format for different display needs by changing the format string passed to std::put_time. This flexibility is helpful when generating logs, user-facing reports, or file names that require a specific date and time layout. Whether you want a compact numeric format, a verbose human-readable string, or something in between, you can achieve it by mixing and matching the available specifiers.
std::put_time is available in C++11 and later, and works with output streams such as std::cout, std::ostringstream, and file streams. Always ensure your compiler supports at least C++11 to use this feature.
Дякуємо за ваш відгук!