Payam124...com
|
Hi! Welcome to My home page. here you could find some details about me and my activities. here you could obtain my professional resume.
اگر از محصولهای ویندوز استفاده میکنید و Timezone شما روی Iran Standard هست، احتمالا با مشکل به هم ریختن ساعت حوالی اول فروردین و اول مهر مواجه شدهاید. تا جایی که به یاد دارم، درست زمانی که Microsoft موضوع Daylight Saving را بعد از چند سال از شروع این رویه برای منطقه Iran به طور کامل حل کرد، در کشور به دستور رییس جمهور وقت، تغییر ساعت در کشور متوقف شد! بعد از آن بود که طبق شنیدهها فرد/افرادی که در Microsoft متولی زبان فارسی و تغییرات Timezone و ... بودند، به بهانه تحریم، از به روز رسانی این بخش هم خودداری کردند.
البته این موضوع مشکلی نیست که حل نشدنی باشد. در شهریور 1390 چند ساعتی وقت گذاشتم و بر اساس توضیحات Microsoft فایلی را درست کردم که مشکل سال 1390 را حل کند. بعد به واحد ICT ماموریت دادم که موضوع را برای چند سال آینده هم حل کنند. زحمت کشیدند، اما هم مقداری ناقصی داشت، هم دیر کارشان آماده شد. البته یک مشکل دیگر هم داشتند که چگونه اصلاحات را به 700 کامپیوتر اعمال کنند. در هر حال، خودم دوباره دست به کار شدم و فایلی ساختم که تا پایان 2016 مشکل را حل کند. این فایل را میتوانید از اینجا دریافت کنید. در زیر هم توضیحات مهم را آوردهام:
مشکل عقب و جلو شدن به دلیل daylight saving، هیچ ارتباطی با Time Server و synchronization با اون نداره! حتی اگر daylight saving روی سرور غلط باشه! این موضوع کاملا در سطح client و نمایش است! موضوعی که بارها در طی این چند سال میشنیدم، این بود چون timeserver مشکل داره، ما مشکل داریم!
در صفحه http://support.microsoft.com/kb/914387 اطلاعات خوبی درباره تنظیماتdaylight saving آمدهاست.
منطق daylight saving در خیلی از کشورها بر اساس فرمت "چندمین چند شنبه ماه X" است. مثلا اینجوری فکر کردهاند: خوب است شنبه تغییر ساعت داشته باشیم که یکشنبه مردم عادت کنند و از دوشنبه درست سر کار بروند. برای همین فرمت تعریف زمان شروع و پایانdaylight saving، از مدل "چندمین چند شنبه ما x" پیروی میکنه. مثلا میگویند، دومین شنبه مارچ ساعت جلو کشیده شود. در کشور ما، منطق بر اساس چندمین روز ماه شمسی است. یعنی میگوییم پایان روز 1 فروردین یکساعت جلو برویم (احتمالا هدف این بوده که در هر صورتی، ساعت سال تحویلشدن در تغییر و تحول ساعت، دچار ابهام نشود) و در پایان روز 30 شهریور، یک ساعت به عقب بازگردیم (که اینجا هم احتمالا منطق این بوده که روز 31 شهریور مردم عادت کنند و روز اول مهر که بازگشایی مدارس هست، ابهام و فراموشی کمتر باشد).
در تعریف تنظیمات daylight saving، مدل اول (چندمین چند شنبه ماه X)، به عنوان مدل استاتیک شناخته میشوم و هر مدل دیگری مثل مدل ایران، به عنوان dynamic daylight saving هست. یعنی برای هر سال باید تعریف شود که در آن سال مشخص، اول فروردین چندمین چند شنبه مارچ است و 30 شهریور، چندمین چند شنبه از ماه سپتامبر.
در registry در آدرس: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\Iran Standard Time میتونید اطلاعاتی مربوط به ایران را ببینید. برای مثال در windows 7، در زیر این آدرس در شاخه Dynamic DTS، اطلاعات سال 2006 تا 2009 قرار دارد. فرمت آن کمابیش در http://msdn.microsoft.com/en-us/library/windows/desktop/ms725481%28v=vs.85%29.aspx توضیح داده شده.
اطلاعاتی که در فایل گذاشتم عملا کاری که میکند این است که در شاخه Dynamic DTS، اطلاعات صحیح از سال 2010 تا 2016 گذاشته شود. همچنین اطلاعات 2012 را در یک شاخه بالاتر زیر Iran Standard Time در پارامتر TZI قرار میدهد
نکته مهم در ادامه بند بالا، عملکرد ویندوز اینگونه است که آخر هر سال میلادی، نگاهی به شاخههای Dynamic DTS زیر هر time zone میاندازد و اگر برای سال بعد، مقداری تعریف شده باشد، آنرا در TZI کپی میکند. با توجه به این توضیح، اگر در سال 2013 این فایل من را گرفتید، باید خودتان دستی مقدار داخل 2013 را در TZI کپی کنید
برای جلوگیری از ابهام به جای استفاده از ساعت 24 یا 00:00، از ساعت 23:59 استفاده کردهام که تشکیک در اینکه منظور اولین ساعت شروع روز است یا آخرین ساعت شروع روز، از بین برود.
درباره outlook و exchange، خصوصا نسخههای 2007 و به قبل، کمی داستان مفصلتر است. به طول خلاص، اگر time zone دستگاه را درست کردید، باید از ابزارهای مایکروسافت استفاده کنید که اطلاعات قبلی مثل task ها و meeting هایی که قبلا تنظیم شدهاند را اصلاح کند. توضیحات دقیقتر در http://support.microsoft.com/kb/931667 وجود دارد.
@1390/12/28 by:payam |
![]() |