¿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;
}
```