最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

class
<chrono>

# std::formatter(C++20)

    namespace std {
      template <class charT>
      struct formatter<chrono::weekday, charT>;
    }

## 概要

`weekday`クラスに対する`std::formatter`クラステンプレートの特殊化。

フォーマットフラグとしては、以下を使用できる：

フォーマットフラグ | 説明
--- | ---
`%a` | ロケール依存の曜日の略称
`%A` | ロケール依存の曜日の完全名
`%u` | 10進数での月曜を1とするISO曜日番号 (1-7)
`%Ou` | ロケール依存の`%u`の異なる表現
`%w` | 10進数での日曜を0とするISO曜日番号 (0-6)

## 例

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

    namespace chrono = std::chrono;

    int main()
    {
      // デフォルトフォーマットはoperator<<と同じ
      std::cout << std::format("{}", chrono::Sunday) << std::endl;

      std::cout << std::format("{:%a}", chrono::Sunday) << std::endl; // 略称
      std::cout << std::format("{:%A}", chrono::Sunday) << std::endl; // 完全名

      // ロケール依存の出力
      std::cout << std::format(std::locale("ja_JP.UTF-8"), "{:%a}", chrono::Sunday) << std::endl;
      std::cout << std::format(std::locale("ja_JP.UTF-8"), "{:%A}", chrono::Sunday) << std::endl;
    }

### 出力

    Sun
    Sun
    Sunday
    日
    日曜日

## バージョン

### 言語

- C++20

### 処理系

- Clang: 9.0 ❌
- GCC: 9.2 ❌
- Visual C++: 2019 Update 3 ❌

## 関連項目

- chronoの`std::format()` (フォーマットの詳細)