programas pedir hora funciones fecha ejemplos ejemplo completo como comandos calcular c++ datetime stl stream

pedir - ¿Hay una clase estándar de fecha/hora en C++?



manual completo de c++ pdf (6)

¿C ++ stl tiene una clase de tiempo estándar? O tengo que convertir a c-string antes de escribir en una secuencia. Ejemplo, quiero generar la fecha / hora actual en un flujo de cadena:

time_t tm(); ostringstream sout; sout << tm << ends;

En este caso, la fecha / hora actual se escribe como un número sin ningún formato. Puedo usar c- runtime function strftime para formatear tm primero, pero parece que no debería ser necesario si el stl tiene una clase de tiempo que puede ser instanciada desde time_t value



DE ACUERDO. Aquí está el más cercano que he encontrado sobre la hora de escribir directamente en una secuencia:

time_t t(time(NULL)); // current time tm tm(*localtime(&t)); std::locale loc(""); // current user locale ostringstream sout; const std::time_put<TCHAR> &tput = std::use_facet<std::time_put<TCHAR> >(loc); tput.put(sout.rdbuf(), sout, _T(''/0''), &tm, _T(''x'')); sout << ends; CString sTest(sout.str().c_str());

Una guía muy útil es la Guía de referencia de la biblioteca estándar de Apache C ++ http://stdcxx.apache.org/doc/stdlibref/time-put.html#sec13


Hay get_time y put_time en el put_time <iomanip> (supongo que estos vinieron con C ++ 11) que efectivamente realiza trabajos de formato o análisis de cadenas.


Nitpicking: la STL es la biblioteca de plantillas estándar que se ocupa de contenedores y algoritmos genéricos, etc. y es poco probable que incorpore clases para el manejo y el cálculo de fechas, incluso en el futuro ...

La biblioteca estándar de C ++ incluye la STL y una versión anterior de la biblioteca estándar de C. El último ofrece algunas funciones relacionadas con la fecha y la hora a través de #include <ctime> que ya se ha mencionado anteriormente.

Si ajustar (o simplemente usar) estas funciones es suficiente (y más rápido) que empujar el impulso , vaya con estas. No hay nada malo con ellos.


No es parte de STL pero la biblioteca conocida es un impulso.

Yo seguiría el camino de usar boost::date . Aquí hay algunos ejemplos: http://www.boost.org/doc/libs/1_55_0/doc/html/date_time/date_time_io.html#date_time.io_tutorial .

Si aún no probaste el impulso, te animo a que lo hagas, ya que te ahorra muchos problemas desagradables, ya que enmascara la mayoría de las cosas que dependen del sistema operativo, como los hilos, por ejemplo. Muchas cosas en boost son solo encabezado (bibliotecas de plantillas). Sin embargo, datetime requiere un lib o dll.


También hay un método ctime (& time_t) que genera la cadena (char *).