Avatar ·

如何在C++中获取当前日期和时间?(跨平台解决方案)

大家好。我是一名初学C++的开发者,正在编写一个小型控制台日志记录应用程序。我需要每条日志记录都以时间戳开头——当前日期和时间,格式为"YYYY-MM-DD HH:MM:SS"。 问题在于我同时在Windows(使用Visual Studio)和Linux(通过SSH)上工作。我尝试过使用``和`GetLocalTime()`函数,但代码在Linux上无法编译。谷歌搜索后,我找到了`time()`和`localtime()`,但它们只输出从1970年以来的秒数。我尝试使用`strftime`,但对格式字符串感到困惑,不知道如何正确将结果写入`std::string`。 以下是我目前的代码(仅适用于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; } ```