تغییرات نرم افزاری لازم قبل از آغاز سال ۱۴۰۲

در بهار ۱۴۰۱ قانونی در کشور تصویب شد که دیگر ساعت رسمی کشور تغییر نکند. این قانون از سال ۱۴۰۲ اجرایی خواهد شد که باید قبل از آن اطمینان حاصل کنیم زیرساخت‌ها٬ پروژه‌ها و اپلیکیشن‌های ما تحت تاثیر قرار نگیرند.

ساعت تابستانه چیست؟

لغت DST که کوتاه شده ی Daylight Saving Time می‌باشد همان ساعت تابستانه است که در ۶ ماه ابتدایی سال فعال شده و در ۶ ماه پایانی غیرفعال خواهد شد. این تغییر با نیت‌های مختلفی انجام می‌شود. بعضی از کشورهای جهان برای استفاده بهتر از نورطبیعی عصرها ٬ بعضی‌ها جهت کاهش حوادث جاده ای و اکثر کشور‌ها نیز به دلیل کاهش میزان انرژی جهت روشنایی مصنوعی در شب ساعت رسمی خود را تغییر می‌دهند.


در حال حاضر کمتر از ۴۰ درصد کشورهای جهان از DST استفاده می‌کنند که ایران نیز یکی از آن‌ها بود.

مدیریت منطقه زمانی

تغییرات تاریخ و زمان و همچنین منطقه زمانی توسط پکیج های مختلف انجام خواهند شد. قوانین ساعتی کشورهای مختلف در این پکیج ها تنظیم شده است تا به صورت خودکار برای کاربران DST اعمال شود. در صورتی که این پکیج‌ها آپدیت باشند مشکلی برای اپلیکیشن‌های شما به وجود نخواهد آمد.

توجه کنید که این تغییر ساعت فقط برای منطقه زمانی ( Time Zone ) ایران وجود دارد. در صورتی که از منطقه زمانی UTC استفاده می‌کنید نیاز نیست کار خاصی انجام دهید.

در ادامه روش‌هایی را جهت به روزرسانی پکیج‌های مورد نظر بررسی خواهیم کرد.

لینوکس

توزیع‌های لینوکس از پکیج tzdata جهت مدیریت تاریخ٬ ساعت و منطقه زمانی استفاده می‌کنند. از آپدیت بودن این پکیج اطمینان حاصل کنید.

sudo apt-get install tzdata

تغییرات مربوط به ساعت ایران در تاریخ ۱۶ آگوست ۲۰۲۲ در پکیج tzdata منتشر شد‌ ( تاریخچه ). پکیج نصب شده باید از این نسخه جدیدتر باشد. جهت مشاهده نسخه نصب شده از دستور زیر استفاده نمایید:

dpkg -s tzdata | grep -i version

داکر

با توجه به اینکه در ایمیج‌های داکر ممکن است Base image های متفاوتی استفاده کنید٬ احتمال اینکه پکیج tzdata در آن آپدیت نباشد وجود دارد. با به‌روزرسانی کردن مجدد این پکیج در فایل Dockerfile می‌توانید مشکل را برطرف کنید.

RUN apt-get update && apt-get install tzdata -y

کتابخانه‌ها

تغییرات ذکر شده در مراحل قبل مربوط به سیستم عامل بود. اما ممکن است شما در کدهای خود به طور مستقیم زمان را محاسبه کرده باشد. در این صورت مطمئن شوید که از جدیدترین نسخه کتابخانه‌های مربوط به زبان برنامه نویسی خود استفاده کنید. در ادامه چند نمونه از این کتابخانه ها آورده شده است.

  • Python: pytz 2022.7.1
  • Erlang: qdate_localtime 1.2.1