Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Formatting Time Output with put_time | Formatting and Converting Time
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
C++ Dates and Times

bookFormatting 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

main.cpp

copy
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

main.cpp

copy
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.

Note
Note

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.

question mark

What is the main purpose of std::put_time in C++?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Suggested prompts:

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`?

bookFormatting Time Output with put_time

Sveip for å vise menyen

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

main.cpp

copy
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

main.cpp

copy
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.

Note
Note

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.

question mark

What is the main purpose of std::put_time in C++?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 2
some-alt