جودة البيانات

التغييرات التاريخية في المناطق الزمنية ولماذا لا تزال مهمة

البرمجيات التي تحسب فروق توقيت المناطق الزمنية كثيرًا ما تفترض ضمنيًا أن القاعدة الحالية للمنطقة كانت سارية دائمًا، وهذا الافتراض يعمل جيدًا حتى اللحظة التي تحتاج فيها إلى تفسير صحيح لطابع زمني يسبق آخر تغيير في القاعدة، وعندها يُنتج بهدوء إجابة خاطئة تبدو معقولة تمامًا. وهذا مصدر شائع حقًا لتلف البيانات الدقيق في الأنظمة التي تخزّن طوابع زمنية تاريخية أو تعالجها عبر مدى زمني معتبر.

سبب أهمية ذلك أن قواعد المناطق الزمنية، أي تواريخ بدء التوقيت الصيفي وانتهائه، وفروق التوقيت القياسية، بل وحتى المنطقة التي ينتمي إليها موقع ما، ليست ثابتة إلى الأبد. فهي تتغير حين تغيّرها الحكومات، كما شُرح في موضع آخر، والطابع الزمني المسجّل قبل سنوات يحتاج إلى القاعدة التي كانت سارية فعلًا في ذلك التاريخ بالتحديد، لا القاعدة السارية اليوم، لحساب اللحظة المقابلة الصحيحة في منطقة أخرى أو بتوقيت UTC.

لهذا السبب تحديدًا تخزّن قاعدة بيانات المناطق الزمنية IANA تاريخًا كاملًا لتغييرات القواعد لكل منطقة مسمّاة بدلًا من القاعدة الحالية فقط. والبرمجيات المبنية فوقها بشكل صحيح يمكنها الإجابة عن سؤال «ما فرق التوقيت عن UTC لهذه المنطقة في هذا التاريخ التاريخي المحدد»، وهو سؤال مختلف وأكثر تعقيدًا حقًا من سؤال «ما فرق التوقيت عن UTC لهذه المنطقة الآن»، والخلط بينهما هو بالضبط الطريقة التي تنحرف بها بيانات الطوابع الزمنية التاريخية بهدوء نحو الخطأ.

يظهر هذا بطرق ملموسة وعملية. فالنظام الذي يحوّل طابعًا زمنيًا تاريخيًا من سجل ما من التوقيت المحلي إلى UTC لغرض التحليل يحتاج إلى القاعدة التاريخية الخاصة بالتاريخ الأصلي لذلك السجل ومنطقته، لا القاعدة الحالية، وإلا أدخل التحويل خطأ قد يصل إلى ساعة كاملة في أي من الاتجاهين بحسب الانتقال المعني. والنظام الذي يحسب عمر شخص أو مدة عقد عبر تواريخ تمتد عبر تغيير تاريخي في القاعدة يحتاج إلى العناية نفسها، وإن كان الأثر هناك أصغر عادةً. وحتى عرض طابع زمني قديم للمستخدم بتوقيته المحلي الحالي يتطلب التحويل عبر القاعدة التاريخية الصحيحة للمنطقة والتاريخ الأصليين، لا القاعدة الحالية.

التوجيه العملي هو أن تحسب تحويلات المناطق الزمنية دائمًا باستخدام نظام يدرك التغييرات التاريخية في القواعد للمنطقة والتاريخ المعنيين، بدلًا من نظام لا يعرف إلا القاعدة الحالية، وأن تكون حذرًا بشكل خاص مع أي عملية تحوّل بيانات تاريخية دفعةً واحدة عبر مدى زمني قد يتضمن تغييرًا في القاعدة. ويمكن الاستعلام عبر خدمة الاستعلام عن المنطقة الزمنية لدينا عن لحظة زمنية محددة، مع تطبيق القواعد التي كانت سارية فعلًا في ذلك التاريخ، وهذا بالضبط السلوك المطلوب للتعامل الصحيح مع البيانات التاريخية بدلًا من اللجوء إلى قاعدة اليوم في كل عملية حساب بغض النظر عن التاريخ الذي تجري معالجته فعلًا.