Spec-Zone.ru › C++

std::time_get<CharT,InputIt>::date_order, std::time_get<CharT,InputIt>::do_date_order

Определено в заголовке <locale>
public:
dateorder date_order() const;
(1)
protected:
virtual dateorder do_date_order() const;
(2)
1) Открытая функция-член, вызывает защищенную виртуальную функцию-член do_date_order самого производного класса.
2) Возвращает значение типа std::time_base::dateorder, которое описывает стандартный формат даты, используемый в этой локали (ожидаемый функцией get_date() и производимый функцией std::strftime() с спецификатором формата '%x').

Допустимые значения (унаследованные от std::time_base):

no_order формат содержит переменные элементы (день недели, порядковый номер дня и т.д.), или функция не реализована
dmy день, месяц, год (европейские локали)
mdy месяц, день, год (американские локали)
ymd год, месяц, день (азиатские локали)
ydm год, день, месяц (редко)

Параметры

(нет)

Возвращаемое значение

Значение типа dateorder.

Примечания

Эта функция необязательна, она может вернуть no_order в каждом случае.

Пример

Вывод ниже был получен с помощью clang (libc++).

#include <iostream>
#include <locale>
 
void show_date_order()
{
    std::time_base::dateorder d = std::use_facet<std::time_get<char>>(
                                      std::locale()
                                  ).date_order();
    switch (d)
    {
        case std::time_base::no_order:
            std::cout << "no_order\n";
            break;
        case std::time_base::dmy:
            std::cout << "day, month, year\n";
            break;
        case std::time_base::mdy:
            std::cout << "month, day, year\n";
            break;
        case std::time_base::ymd:
            std::cout << "year, month, day\n";
            break;
        case std::time_base::ydm:
            std::cout << "year, day, month\n";
            break;
    }
}
 
int main()
{
    std::locale::global(std::locale("en_US.utf8"));
    std::cout << "In U.S. locale, the default date order is: ";
    show_date_order();
 
    std::locale::global(std::locale("ja_JP.utf8"));
    std::cout << "In Japanese locale, the default date order is: ";
    show_date_order();
 
    std::locale::global(std::locale("de_DE.utf8"));
    std::cout << "In German locale, the default date order is: ";
    show_date_order();
}

Возможный вывод:

In U.S. locale, the default date order is: month, day, year
In Japanese locale, the default date order is: year, month, day
In German locale, the default date order is: day, month, year

См. также

do_get_date
[virtual]
извлекает месяц, день и год из входного потока
(виртуальная защищенная функция-член)
time_base
определяет константы формата даты
(класс)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/time_get/date_order

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API