كيفية الحصول على التاريخ والوقت الحاليين في 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;
}
```