Namespaces
Variants

std:: time_put_byname

From cppreference.net
Definido en el encabezado <locale>
template <

class CharT,
class OutputIt = std:: ostreambuf_iterator < CharT >

> class time_put_byname : public std:: time_put < CharT, OutputIt >

std::time_put_byname es una faceta std::time_put que encapsula las reglas de formato de hora y fecha de la configuración regional especificada en su construcción.

Contenidos

Especializaciones

La biblioteca estándar garantiza proporcionar cada especialización que cumpla con los siguientes requisitos de tipo:

Tipos anidados

Tipo Definición
char_type CharT
iter_type OutputIt

Funciones miembro

(constructor)
construye un nuevo facet time_put_byname
(función miembro pública)
(destructor)
destruye un facet time_put_byname
(función miembro protegida)

std::time_put_byname:: time_put_byname

explicit time_put_byname ( const char * name, std:: size_t refs = 0 ) ;
explicit time_put_byname ( const std:: string & name, std:: size_t refs = 0 ) ;
(desde C++11)

Construye una nueva faceta std::time_put_byname para una configuración regional con name .

refs se utiliza para la gestión de recursos: si refs == 0 , la implementación destruye la faceta cuando se destruye el último objeto std::locale que la contiene. De lo contrario, el objeto no se destruye.

Parámetros

name - el nombre de la configuración regional
refs - el número de referencias que enlazan con la faceta

std::time_put_byname:: ~time_put_byname

protected :
~time_put_byname ( ) ;

Destruye el facet.

Heredado de std:: time_put

Miembros de datos

Miembro Descripción
std::locale::id id [static] el identificador del facet

Funciones miembro

invoca do_put
(función miembro pública de std::time_put<CharT,OutputIt> )

Funciones miembro protegidas

[virtual]
formatea fecha/hora y escribe en el flujo de salida
(función miembro protegida virtual de std::time_put<CharT,OutputIt> )

Ejemplo

Imprime la hora actual utilizando la configuración regional "C" con el facet time_put reemplazado por varios facets std::time_put_byname . El resultado mostrado se obtuvo utilizando el compilador clang.

#include <codecvt>
#include <ctime>
#include <iomanip>
#include <iostream>
int main()
{
    std::time_t t = std::time(nullptr);
    std::wbuffer_convert<std::codecvt_utf8<wchar_t>> conv(std::cout.rdbuf());
    std::wostream out(&conv);
    out.imbue(std::locale(out.getloc(),
                          new std::time_put_byname<wchar_t>("ja_JP.utf8")));
    out << std::put_time(std::localtime(&t), L"%A %c") << '\n';
    out.imbue(std::locale(out.getloc(),
                          new std::time_put_byname<wchar_t>("ru_RU.utf8")));
    out << std::put_time(std::localtime(&t), L"%A %c") << '\n';
    out.imbue(std::locale(out.getloc(),
                          new std::time_put_byname<wchar_t>("sv_SE.utf8")));
    out << std::put_time(std::localtime(&t), L"%A %c") << '\n';
}

Salida posible:

木曜日 2023年10月05日 19時44分51秒
Четверг Чт 05 окт 2023 19:44:51
torsdag tor  5 okt 2023 19:44:51

Véase también

formatea el contenido de std::tm para salida como secuencia de caracteres
(plantilla de clase)