Como obter a data e hora atuais em C++? (solução multiplataforma)
Olá a todos. Sou um desenvolvedor C++ iniciante e estou escrevendo um pequeno aplicativo de console para registrar logs. Preciso que cada entrada no log comece com um timestamp — a data e hora atuais no formato "YYYY-MM-DD HH:MM:SS".
O problema é que trabalho tanto no Windows (no Visual Studio) quanto no Linux (via SSH). Tentei usar `` e a função `GetLocalTime()`, mas o código não compila no Linux. Pesquisei no Google e encontrei `time()` e `localtime()`, mas eles exibem apenas o número de segundos desde 1970. Tentei usar `strftime`, mas me confundo com as strings de formato e não entendo como escrever o resultado corretamente em `std::string`.
Aqui está o que tenho até agora (funciona apenas no 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;
}
```