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