std::formatter

std::formatter (std::chrono::year_month_day_last 특수화)

std::chrono::year_month_day_last 값을 포맷할 수 있게 해주는 std::formatter 특수화예요. std::formatstd::print에서 이 타입을 출력할 수 있게 해줘요. C++20부터 있어요.

출처: cppreference

본문

<chrono> 헤더에 정의돼 있고, std::formatter<std::chrono::year_month_day_last> 특수화예요. std::format·std::print 계열에서 year_month_day_last 값을 chrono 형식 지정 문법에 따라 포맷해요.

형식 문자열 안에서 이 타입에 사용할 수 있는 chrono 포맷 지정자는 날짜·시간 관련 문자들을 포함해요. 예:

  • %Y — 네 자리 연도 (예: 2023)
  • %b — 월 약어 (예: Aug)
  • %m — 두 자리 월 (예: 08)
  • %B — 전체 월 이름 (예: August)
  • %F%Y-%m-%d와 동등한 ISO 날짜 형식

기본(형식 지정 없음) 출력은 연·월·last 형태(2023-Aug-last)를 나타내요.

#include <chrono>
#include <format>
#include <iostream>

int main()
{
    using namespace std::chrono;
    year_month_day_last ymdl{2023y/August/last};
    std::cout << std::format("{}", ymdl) << '\n';          // 기본
    std::cout << std::format("{:%Y-%b}", ymdl) << '\n';    // 2023-Aug
}

이 특수화 덕분에 year_month_day_last를 포맷 문자열로 유연하게 출력할 수 있어요.

더 알아보기 (Learn more)

cppreference