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
См. также
|
[виртуальная] | извлекает месяц, день и год из входного потока (виртуальная защищённая функция-член) |
| определяет константы формата даты (класс) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/time_get/date_order