Avatar ·

¿Cómo obtener la fecha y hora actuales en C++? (solución multiplataforma)

Hola a todos. Soy un desarrollador principiante de C++ y estoy escribiendo una pequeña aplicación de consola para llevar registros (logs). Necesito que cada entrada en el log comience con una marca de tiempo — la fecha y hora actuales en el formato "YYYY-MM-DD HH:MM:SS". El problema es que trabajo tanto en Windows (en Visual Studio) como en Linux (a través de SSH). Intenté usar `` y la función `GetLocalTime()`, pero el código no compila en Linux. Buscando en Google, me topé con `time()` y `localtime()`, pero solo devuelven la cantidad de segundos desde 1970. Intenté usar `strftime`, pero me confundo con las cadenas de formato y no entiendo cómo escribir correctamente el resultado en un `std::string`. Esto es lo que tengo hasta ahora (solo funciona en Windows): ```cpp #include #include int main() { SYSTEMTIME st; GetLocalTime(&st); std::cout << st.wYear << "-" << st.wMonth << "-" << st.wDay << " " << st.wHour << ":" << st.wMinute << ":" << st.wSecond << std::endl; return 0; } ```