يبدو التحويل بين المناطق الزمنية طرحًا، وليس كذلك. ثلاثة أشياء منفصلة تعترض الطريق، وكل واحد منها يكفي وحده لإخراج جواب خاطئ بثقة.
الاختصارات لا تحدّد شيئًا
IST هي توقيت الهند القياسي عند UTC+5:30. هي أيضًا توقيت أيرلندا الصيفي عند UTC+1، وتوقيت إسرائيل القياسي عند UTC+2. ثلاث مناطق، واختصار واحد، وأربع ساعات ونصف بين الطرفين.
CST هي التوقيت المركزي الأمريكي، وتوقيت الصين القياسي، وتوقيت كوبا القياسي. BST هي التوقيت البريطاني الصيفي وتوقيت بنغلاديش القياسي. AMT عنت الأمازون وأرمينيا وأمستردام.
لا يعرّف أي معيار أيًّا من هذه الاختصارات. هي أعراف، وهي تتصادم، والحساب المبني على أحدها حساب مبني على تخمين البلد الذي قصده الطرف الآخر.
نصف السنة، EST ليست EST
EST هي التوقيت الشرقي القياسي، أي UTC−5، وهو ما يستعمله الساحل الشرقي الأمريكي في الشتاء. من مارس إلى نوفمبر يكون على EDT، أي UTC−4.
فـ«9 صباحًا EST» في يوليو هي، بدقّة، أبكر بساعة ممّا قصده قائلها — فهو على EDT ويستعمل EST على التساهل، كما يفعل الجميع تقريبًا. العُرف أن تفهمها «توقيت الساحل الشرقي» وتأمل خيرًا، وهو ما ينجح حتى يأخذها أحد حرفيًّا.
ينطبق هذا نفسه على PST وCST وكل زوج آخر. كتابة ET أو PT أو CT بدلًا منها — دون S أو D — صادقة على الأقلّ في أنها تعني «أيًّا كان توقيت ذلك الساحل اليوم».
الفروق ليست كلها ساعات كاملة
الهند على UTC+5:30. نيبال على UTC+5:45، وقد اختير هذا عمدًا ليختلف عن الهند. أجزاء من أستراليا عند UTC+9:30، وإيران عند UTC+3:30، وجزر تشاتام عند UTC+12:45.
أي حساب ذهني يفترض ساعات كاملة يخطئ بثلاثين أو خمس وأربعين دقيقة عند شريحة كبيرة من العالم، منها ثاني أكثر بلدانه سكّانًا.
الساعات تتغيّر في تواريخ مختلفة
الفارق بين مدينتين ليس ثابتًا. تعمل أوروبا والولايات المتحدة كلتاهما بالتوقيت الصيفي وتبدّلان في تواريخ مختلفة، فلأسبوعين كل ربيع وخريف لا يكون الفارق المعتاد بين لندن ونيويورك هو الفارق المعتاد ببساطة.
ينزاح نصف الكرة الجنوبي في الاتّجاه الآخر، فيتأرجح الفارق بين لندن وسيدني بساعتين على مدار السنة. أما معظم آسيا وأفريقيا فلا يعمل بالتوقيت الصيفي إطلاقًا، فيتغيّر فارقه مع أوروبا مرّتين في السنة دون أن يحدث شيء محلّيًّا.
لهذا ينجرف اجتماع متكرّر. لم ينقله أحد؛ بل تحرّك أحد طرفيه.
ما تستعمله بدلًا منها
المعرّف الموثوق هو اسم منطقة IANA — America/New_York، Asia/Kolkata، Europe/London. يسمّي مكانًا لا فارقًا، فيحمل معه تاريخ ذلك المكان كله ومستقبله في تغيير القواعد.
هذا الفرق يهمّ أكثر ممّا يبدو. الفارق صحيح للحظة واحدة فقط؛ والمنطقة صحيحة لكل اللحظات. تخزين «UTC+1» مع موعد مستقبلي في لندن سيكون خاطئًا بعد تغيير الساعات، بينما تخزين Europe/London لن يكون كذلك.
قاعدة البيانات وراء تلك الأسماء تُحدَّث عدّة مرّات في السنة، لأن الحكومات تظلّ تغيّر القواعد — بإشعار أسابيع قليلة غالبًا.
الجدولة عبر المناطق
ثبّت اللحظة، لا ما تشير إليه الساعة على الحائط. تحمل دعوة التقويم لحظةً بعينها وتعرضها بتوقيت كل شخص، وهذا هو مقصد استعمالها كله بدل كتابة وقت في رسالة.
حين تضطرّ إلى كتابته، اكتب الوقت بتوقيت UTC ودع الناس يحوّلون: 14:00 UTC لا لبس فيها حيث الساعة 3 بتوقيتي فيها لبس. في منصّات المحادثة التي تدعمه، يظهر طابع Unix الزمني بتوقيت كل قارئ تلقائيًّا ويزيل المشكلة تمامًا.
أما حين يقع اجتماع عبر تغيير للساعات — الأسبوعان اللذان يكون فيهما طرف قد بدّل والآخر لم يبدّل — فأكّد بدل أن تفترض. في هذين الأسبوعين تقع تقريبًا كل هذه الأخطاء فعلًا.
الخلاصة
الاختصارات ملتبسة؛ استعمل محوّلًا يسمّي المكان. لا تفترض ساعات كاملة. لا تفترض أن الفارق بين مدينتين واحد طوال السنة. أما حين يجب أن يُكتب، فاكتب UTC.