obtener hora fecha ejemplos ejemplo actual c++ datetime stl boost

ejemplos - C++ Convertir una cadena de fecha y hora en Epoch Cleanly



time c++ ejemplo (3)

¿Existe un método de limpieza de C / C ++ / STL / Boost para convertir una cadena de fecha y hora a hora de época (en segundos)?

yyyy:mm:dd hh:mm:ss


En la plataforma Windows puedes hacer algo como esto si no quieres usar Boost:

// parsing string SYSTEMTIME stime = { 0 }; sscanf(timeString, "%04d:%02d:%02d %02d:%02d:%02d", &stime.wYear, &stime.wMonth, &stime.wDay, &stime.wHour, &stime.wMinute, &stime.wSecond); // converting to utc file time FILETIME lftime, ftime; SystemTimeToFileTime(&stime, &lftime); LocalFileTimeToFileTime(&lftime, &ftime); // calculating seconds elapsed since 01/01/1601 // you can write similiar code to get time elapsed from other date ULONGLONG elapsed = *(ULONGLONG*)&ftime / 10000000ull;

Si prefiere la biblioteca estándar, puede usar struct tm y mktime () para hacer el mismo trabajo.



Ver: conversión de fecha / hora: representación de cadena a time_t

Y: [Boost-users] [date_time] Entonces, ¿cómo es que no hay un to_time_t helper func?

Entonces, aparentemente algo como esto debería funcionar:

#include <boost/date_time/posix_time/posix_time.hpp> using namespace boost::posix_time; std::string ts("2002-01-20 23:59:59"); ptime t(time_from_string(ts)); ptime start(gregorian::date(1970,1,1)); time_duration dur = t - start; time_t epoch = dur.total_seconds();

Pero no creo que sea mucho más limpio que la sugerencia de Rob : use sscanf para analizar los datos en una struct tm y luego llame a mktime .