هل أدى تغيير قاعدة التوقيت الصيفي إلى إبطال مكتبة وقت التشغيل C؟

StackOverflow https://stackoverflow.com/questions/275952

  •  07-07-2019
  •  | 
  •  

سؤال

منذ بعض الوقت قمت بتجميع أ وقت مكتبة قائمة يمكن استخدامها لحساب الأوقات النسبية خلال عام لشخص ما.لاحظت في ذلك الوقت أنها قامت بالتحول لمدة ساعة واحدة في كلا الاتجاهين للتوقيت الصيفي.لقد حدث لي ذلك للتو قام الكونجرس بتغيير قواعد التوقيت الصيفي.لا أذكر أنني رأيت أي معلومات حول التحديثات لحل التغيير في الخوارزميات.هل لدى أي شخص أي معلومات حول هذا الموضوع؟

هل كانت مفيدة؟

المحلول

تستخدم معظم الأنظمة المشابهة لنظام Unix قاعدة بيانات Olson tz للحصول على معلومات المنطقة الزمنية الخاصة بها:

http://www.twinsun.com/tz/tz-link.htm

تم تنفيذ التغييرات على قواعد المنطقة الزمنية الأمريكية في الإصدار 2005l من قاعدة بيانات tz.

نصائح أخرى

بالنسبة لـ Visual Studio 2005 والإصدارات السابقة، أصدرت Microsoft إصدارات محدثة من مكتبات وقت تشغيل C.يمكن العثور على مزيد من المعلومات هنا.

ما هي المنصة التي تعمل عليها؟

نظرًا لأن الكونجرس لا يضع القواعد للعالم كله :) فقد كانت هناك آلية لتحديد القواعد بشكل مرن على أنظمة Unix/Linux لفترة طويلة

انظر على سبيل المثال، http://www.manpagez.com/man/8/zic/ بالنسبة لتنسيق الملفات .قد يحتاج نظامك الخاص إلى تعريف محدث للقواعد الجديدة (إذا لم يتعامل التوزيع معها بالفعل)

بالنسبة لنظام التشغيل Windows، يقوم MS ببناء بعض القواعد وإصدار التحديثات عندما تتغير الأمور.

بالنسبة لأنظمة MacOs، ليس لدي أي فكرة، لكني أتخيل أنها ترث طريقة Unix في القيام بالأشياء.

ولكن في كل هذه الحالات، لا حاجة لأي تغيير في مكتبة C

في ملاحظة أكثر عمومية، يستخدم وقت تشغيل C ملفات البيانات الداخلية للتعيين من تمثيل الوقت الداخلي إلى الإعدادات المحلية للمستخدم.يتم تحديث هذه التعيينات بانتظام من قبل البائعين المعنيين لتتناسب مع التشريعات الحالية.

نظرًا لأنه يجب ضبط الساعات الداخلية على التوقيت العالمي المنسق (UTC)، فإن التوقيت الصيفي هو مجرد مسألة تغيير المنطقة الزمنية.على سبيل المثال، في إعداداتي المحلية، في 26 أكتوبر، قام جهاز Mac الخاص بي بالتبديل من CEST (توقيت وسط أوروبا الصيفي) إلى CET "العادي" (توقيت وسط أوروبا).لقد تغير عرض ساعتي، لكن لم يتغير وقت الكمبيوتر.

http://www.timeanddate.com/library/abbreviations/timezones/eu/cest.html

في الواقع، هذا يعني أنه يتعين عليك الاحتفاظ بمتغيرات التاريخ والوقت إما بالتوقيت العالمي المنسق (UTC) أو بتنسيق أصلي يأخذ المنطقة الزمنية في الاعتبار.لهذا السبب فإن مجرد تسجيل التاريخ والوقت كسلسلة "YYYYMMDDHHMMSS"، هو خطأ ينتظر حدوثه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top