[ad_1]
n باستخدام الدالة GetDynamicTimeZoneInformation(&dtzi)، وضمن البنية “dtzi”، يتم إخبارنا
سواء كنت في التوقيت الصيفي أم لا ومتى سيبدأ، عبر
هذين التاريخين. تخبرك القيمة المرجعة لهذه الوظيفة أيضًا بنفس المعلومات.
ولكن كيف يمكن لشخص ما أن يقوم بتحويل تاريخ ضوء النهار و/أو تاريخ التاريخ القياسي
الهياكل في نماذج التاريخ/الوقت المحلية القابلة للقراءة. هل لي أن أسأل كيف يتم ذلك في “C”. انا اعرف هناك
يجب أن يكون هناك بعض التحويلات، ولكن كيف؟ شكرا رغم ذلك، وعلى وقتك.
ما حاولت:
طريقة التجربة والخطأ. استخدام الأمثلة الموجودة ثم تطبيق الفكرة الموجودة على المشكلة. في بعض الأحيان لا يعمل الأمر بشكل صحيح تمامًا ولا يعمل على الإطلاق.
الحل 1
أفترض هنا أنك تتحدث عن تحويل الاثنين SYSTEMTIME
الهياكل في DYNAMIC_TIME_ZONE_INFORMATION
هدف. لتحقيق ذلك، أعتقد أنك ستبدأ بتحويل ملف SYSTEMTIME
هيكل لوقت ملف محلي باستخدام SystemTimeToLocalFileTime
وظيفة. بمجرد الانتهاء من ذلك، سوف تستخدم FileTimeToSystemTime
لتحويل وقت الملف المحلي مرة أخرى إلى ملف SYSTEMTIME
هيكل يمثل التاريخ بالتوقيت المحلي. قد يبدو الأمر كالتالي:
SYSTEMTIME standardDate = timeZoneInfo.StandardDate; FILETIME localFileTime; SystemTimeToLocalFileTime(&standardDate, &localFileTime); SYSTEMTIME localStandardDate; FileTimeToSystemTime(&localFileTime, &localStandardDate); char dateString[20]; sprintf(dateString, "%d-%02d-%02dT%02d:%02d:%02dT", localStandardDate.wYear, localStandardDate.wMonth, localStandardDate.wDay, localStandardDate.wHour, localStandardDate.wMinute, localStandardDate.wSecond);
لاحظ أنني أقوم فقط بإنشاء هذه الطريقة في المحرر هنا، لذلك ربما يكون هناك خطأ مطبعي أو خطأين هنا.
[ad_2]
コメント