كيف يمكنك الحصول على تاريخ ووقت منسق للمكان الحالي في ج؟
-
03-10-2019 - |
سؤال
ما هي الوظيفة C التي يجب أن أتصل بها للحصول على تاريخ ووقت منسق للموقع حيث يتم تنفيذ البرنامج؟
أطرح هذا السؤال لأنني واجهت مشكلة باستخدام Clamav Daemon API. ال VERSION
يقوم الأمر بإرجاع تاريخ ووقت أحدث تعريفات الفيروسات ، لكن الكود يستخدم مكالمة إلى ctime
لتنسيقه. بقدر ما أستطيع أن أقول ctime
لا يقوم بتنسيق DateTime وفقًا للموقع الحالي ويستخدم اختصارات اللغة الإنجليزية لأيام من الأسبوع والشهر في السلسلة التي تم إرجاعها. هذا يسبب مشاكل كبرنامج Java الخاص بي الذي يستخدم API Clamav يفعل احترم اللغة الحالية وبالتالي تتوقع أن يكون لاسم الأسبوع والشهر الاختصارات المحلية.
يجب أن يكون تنسيق وقت البيانات بنفس التنسيق الذي تم إنتاجه بواسطة ctime:
www mmm dd hh: mm: ss yyyy
حيث WWW هو أيام الأسبوع ، MMM في الشهر في Letters ، DD يوم الشهر ، HH: MM: SS time ، و yyyy العام.
يمكنني إعادة كتابة برنامج Java لأفترض دائمًا تواريخ اللغة الإنجليزية ، لكنني سأكون أكثر سعادة لتقديم تصحيح إلى Clamav لأنه يبدو وكأنه خطأ في جانبي.
المحلول
strftime("%c", ...
يجب أن يعطيك تمثيل التاريخ والوقت المفضل للمكان الحالي. أو (لا يزال مع strftime
) يمكنك المحاكاة ctime
تنسيق ولكن مع %b
للاختصار الشهر الحالي ، %a
للاختصار الحالي في أيام الأسبوع ، وما إلى ذلك.