پایگاه داده منطقه زمانی مجموعه ای مشترک از اطلاعات مربوط به مناطق زمانی جهان و قوانین برای مشاهده ساعت تابستانی است که در درجه اول برای استفاده با برنامه های کامپیوتری و سیستم عامل ها در نظر گرفته شده است. پل اگرت از سال 2005 ویراستار و نگهبان آن با حمایت سازمانی ICANN بوده است پایگاه داده tz همچنین به عنوان tzdata، پایگاه داده zoneinfo یا پایگاه داده منطقه زمانی IANA (پس از Internet Assigned Numbers Authority) و گاهی اوقات به عنوان پایگاه داده اولسون شناخته می شود که به مشارکت کننده موسس، آرتور دیوید اولسون اشاره می کند.
نامگذاری یکنواخت آن برای ورودی های پایگاه داده، مانند آمریکا / نیویورک و اروپا / پاریس، توسط پل اگرت طراحی شده است. پایگاه داده تلاش می کند تا مناطق زمانی تاریخی و تمام تغییرات مدنی را از سال 1970، یعنی دوره زمانی یونیکس، ثبت کند. همچنین ثانیه های کبیسه را ثبت می کند. پایگاه داده، و همچنین برخی از کد منبع مرجع، در مالکیت عمومی است. نسخههای جدید پایگاه داده و کد معمولاً چندین بار در سال بهصورت ضمانت تغییرات منتشر میشوند.
در پایگاه داده منطقه زمانی، منطقه زمانی هر منطقه ملی است که در آن ساعت های محلی همه از سال 1970 توافق کرده اند. این تعریف ابتدا به مناطق جغرافیایی مربوط می شود که دارای ساعت های محلی ثابت بوده اند. یک منطقه زمانی با یک منطقه با یک فاصله زمانی استاندارد خاص از UTC متفاوت است، که اغلب به عنوان "منطقه زمانی" نامیده می شود. بنابراین، هر یک از مناطق زمانی تعریف شده توسط پایگاه داده منطقه زمانی ممکن است از چندین انحراف از UTC استفاده کند، مانند انحراف برای زمان استاندارد و ساعت تابستانی.
پایگاه داده منطقه زمانی به عنوان مجموعه ای از فایل های متنی منتشر می شود که قوانین و انتقال منطقه را در قالبی قابل خواندن توسط انسان فهرست می کند. برای استفاده، این فایلهای متنی در مجموعهای از فایلهای باینری مستقل از پلتفرم کامپایل میشوند - یکی در هر منطقه زمانی. کد منبع مرجع شامل چنین کامپایلری به نام zic (کامپایلر اطلاعات منطقه) و همچنین کدی برای خواندن آن فایل ها و استفاده از آنها در API های استاندارد مانند : ()localtime
و ()mktime
هر منطقه زمانی دارای یک یا چند "خط منطقه" در یکی از فایل های متنی پایگاه داده منطقه زمانی است. اولین خط منطقه برای یک منطقه زمانی نام منطقه زمانی را می دهد. هر خط منطقه بعدی برای آن منطقه زمانی، نام آن را خالی می گذارد، که نشان می دهد برای همان منطقه خط قبلی اعمال می شود. هر خط منطقه برای یک منطقه، برای گستره ای از تاریخ و زمان، انحراف به UTC برای زمان استاندارد، نام مجموعه قوانین حاکم بر زمان تابستانی (یا خط فاصله اگر همیشه زمان استاندارد اعمال می شود) را مشخص می کند. اختصارات منطقه زمانی، و برای همه به جز آخرین خط منطقه، تاریخ و زمانی که محدوده تاریخ و زمانی تحت کنترل آن خط به پایان می رسد.
قوانین مربوط به ساعت تابستانی در مجموعه قوانین نامگذاری شده مشخص شده است. هر مجموعه قوانین دارای یک یا چند خط قانون در فایل های متنی است. یک خط قانون حاوی نام مجموعه قوانینی است که به آن تعلق دارد، اولین سالی که قانون در آن اعمال میشود، آخرین سالی که این قانون در آن اعمال میشود (یا «فقط» اگر فقط در یک سال اعمال شود یا «حداکثر» اگر این قانون اعمال شود. این قاعده در آن صورت عمل می کند)، نوع سالی که این قانون در مورد آن اعمال می شود ("-" اگر برای همه سال ها در محدوده مشخص شده اعمال شود، که تقریباً همیشه همینطور است، در غیر این صورت نامی به عنوان آرگومان برای یک اسکریپت استفاده می شود که نشان می دهد که آیا سال از نوع مشخص شده است یا خیر)، ماهی که قانون در آن اجرا می شود، روزی که قانون در آن اجرا می شود (که می تواند یک روز خاص باشد یا مشخصه ای مانند "آخرین یکشنبه ماه") ، زمانی از روز که قانون در آن اعمال می شود، مدت زمانی که باید به انحراف به UTC اضافه شود، و حرف یا حروفی که در مخفف منطقه زمانی استفاده می شود (به عنوان مثال، "S" اگر این قاعده بر زمان استاندارد حاکم است و اگر بر ساعت تابستانی حاکم باشد "D").
مناطق زمانی نامهای منحصربهفردی به شکل «منطقه / مکان» دارند، بهعنوان مثال. "آمریکا / نیویورک". همچنین انتخابی برای استفاده از نامها یا معادلهای انگلیسی و حذف علائم نگارشی و پسوندهای رایج انجام شد. کاراکتر زیر خط به جای فاصله ها استفاده می شود. خط فاصله در جایی استفاده می شود که در نام یک مکان ظاهر می شود. نام منطقه و مکان حداکثر 14 کاراکتر طول دارند.
منطقه نام یک قاره، یک اقیانوس یا «و غیره» است. قاره ها و اقیانوس های مورد استفاده عبارتند از آفریقا، آمریکا، قطب جنوب، قطب شمال، آسیا، اقیانوس اطلس، استرالیا، اروپا، هند و اقیانوس آرام
از آنجایی که برخی از جزایر به سختی به یک قاره خاص متصل می شوند، اقیانوس ها را شامل می شود. برخی از آنها از نظر جغرافیایی به یک قاره و از نظر سیاسی به قاره ای دیگر متصل هستند. همچنین به مرزهای بین قاره ها مراجعه کنید.
منطقه ویژه "Etc" برای برخی از مناطق اداری استفاده می شود، به ویژه برای "Etc / UTC" که نشان دهنده زمان هماهنگ جهانی است. به منظور تطابق با سبک POSIX، نام مناطقی که با "Etc / GMT" شروع می شوند، علامتشان از استاندارد ISO 8601 معکوس شده است. در منطقه "Etc"، مناطق غرب GMT دارای علامت مثبت و مناطق شرقی دارای علامت منفی در نام خود هستند (به عنوان مثال "Etc / GMT-14" 14 ساعت جلوتر از GMT است).
مکان نام یک مکان خاص در داخل منطقه است - معمولاً یک شهر یا جزیره کوچک
نام کشورها معمولاً در این طرح استفاده نمی شود، در درجه اول به این دلیل که به دلیل تغییرات مکرر سیاسی و مرزی، قوی نیستند. نام شهرهای بزرگ معمولاً دائمیتر است.[معمولاً پرجمعیتترین شهر در یک منطقه برای نشان دادن کل منطقه زمانی انتخاب میشود، اگرچه ممکن است شهر دیگری انتخاب شود، اگر بیشتر شناخته شده باشد، و مکان دیگری، از جمله مکانی غیر از یک شهر، اگر منجر به نام مبهم کمتری شود، ممکن است مورد استفاده قرار گیرد. در صورتی که نام مکان مورد استفاده برای نشان دادن منطقه زمانی تغییر کند، قرارداد ایجاد نام مستعار در نسخههای آینده است تا نام قدیمی و جدید به هر دو اشاره داشته باشد. به همان ورودی پایگاه داده.
در برخی موارد مکان خود به عنوان یک نام ترکیبی نشان داده می شود، برای مثال منطقه زمانی "America / Indiana / Indianapolis". نامهای سه سطحی عبارتند از: «آمریکا / آرژانتین / .»، «آمریکا / کنتاکی / .»، «آمریکا / ایندیانا / .» و «آمریکا / داکوتای شمالی / »
مکان انتخاب شده نماینده کل منطقه است. با این حال، اگر قبل از سال 1970 تفاوت هایی در داخل منطقه وجود داشته باشد، قوانین منطقه زمانی فقط در مکان ذکر شده اعمال می شود.
نام | توضیح |
---|---|
آمریکا / کاستاریکا | نام کشور مورد استفاده به این دلیل که نام بزرگترین شهر (و پایتخت) سن خوزه مبهم است |
آمریکا / نیویورک | فاصله با خط زیر جایگزین شد |
آسیا / کلکته | نام شهر کلکته استفاده می شود، زیرا در زمان ایجاد منطقه، این شهر پرجمعیت ترین شهر منطقه بود، اگرچه این دیگر درست نیست |
آسیا / ساخالین | نام جزیره مورد استفاده، زیرا بزرگترین شهر، یوژنو ساخالینسک، بیش از 14 کاراکتر دارد |
آمریکا / باهیا_باندراس | "de" از Bahia de Banderas حذف شد، زیرا نام صحیح بیش از 14 کاراکتر دارد |
قطب جنوب / DumontDUrville | آپستروف حذف می شود. این فاصله معمولا با "_" جایگزین می شود، اما نام آن از 14 کاراکتر بیشتر می شود |
اینها خطوط قوانینی برای قوانین استاندارد زمان تابستانی ایالات متحده هستند، خطوط قوانین برای قوانین زمان تابستانی که در برخی سالها در منطقه زمانی شرقی ایالات متحده (به نام "NYC" به عنوان شهر نیویورک شهری است که آن منطقه را نشان می دهد) اجرا می شود. و خطوط منطقه برای منطقه زمانی آمریکا / نیویورک، از نسخه انتشار tzdata2011n پایگاه داده منطقه زمانی. خطوط منطقه و قوانین منعکس کننده تاریخ DST در ایالات متحده است.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule US 1918 1919 - Mar lastSun 2:00 1:00 D
Rule US 1918 1919 - Oct lastSun 2:00 0 S
Rule US 1942 only - Feb 9 2:00 1:00 W # War
Rule US 1945 only - Aug 14 23:00u 1:00 P # Peace
Rule US 1945 only - Sep 30 2:00 0 S
Rule US 1967 2006 - Oct lastSun 2:00 0 S
Rule US 1967 1973 - Apr lastSun 2:00 1:00 D
Rule US 1974 only - Jan 6 2:00 1:00 D
Rule US 1975 only - Feb 23 2:00 1:00 D
Rule US 1976 1986 - Apr lastSun 2:00 1:00 D
Rule US 1987 2006 - Apr Sun>=1 2:00 1:00 D
Rule US 2007 max - Mar Sun>=8 2:00 1:00 D
Rule US 2007 max - Nov Sun>=1 2:00 0 S
....
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER
Rule NYC 1920 only - Mar lastSun 2:00 1:00 D
Rule NYC 1920 only - Oct lastSun 2:00 0 S
Rule NYC 1921 1966 - Apr lastSun 2:00 1:00 D
Rule NYC 1921 1954 - Sep lastSun 2:00 0 S
Rule NYC 1955 1966 - Oct lastSun 2:00 0 S
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone America/New_York -4:56:02 - LMT 1883 November 18, 12:03:58
-5:00 US E%sT 1920
-5:00 NYC E%sT 1942
-5:00 US E%sT 1946
-5:00 NYC E%sT 1967
-5:00 US E%sT
برای هر منطقه زمانی که چندین فاصله دارد (معمولاً به دلیل ساعت تابستانی)، پایگاه داده منطقه زمانی لحظه دقیق انتقال را ثبت می کند. این قالب میتواند تغییراتی در تاریخ و زمان انتقال نیز داشته باشد. مناطق ممکن است تغییرات قوانین تاریخی داشته باشند که به چندین دهه قبل برمی گردد (همانطور که در مثال بالا نشان داده شده است).
فایل zone.tab در دامنه عمومی است و مناطق را فهرست می کند. ستون ها و مرتب سازی ردیف ها در نظرات فایل به شرح زیر است:
# This file contains a table with the following columns:
# 1. ISO 3166 2-character country code. See the file `iso3166.tab'.
# 2. Latitude and longitude of the zone's principal location
# in ISO 6709 sign-degrees-minutes-seconds format,
# either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS,
# first latitude (+ is north), then longitude (+ is east).
# 3. Zone name used in value of TZ environment variable.
# 4. Comments; present if and only if the country has multiple rows.
#
# Columns are separated by a single tab.
# The table is sorted first by country, then an order within the country that
# (1) makes some geographical sense, and
# (2) puts the most populous zones first, where that does not contradict (1).
هدف از دادههای قبل از سال 1970 این است که برای شهر شناسایی کننده منطقه صحیح باشد، اما لزوماً برای کل منطقه صحیح نیست. این به این دلیل است که از سال 1970، مناطق جدید فقط برای تشخیص ساعت ها ایجاد می شوند.
به عنوان مثال، بین سال های 1963-10-23 و 1963-12-09 در برزیل فقط ایالت های میناس ژرایس، اسپیریتو سانتو، ریودوژانیرو و سائوپائولو زمان تابستانی داشتند. با این حال، درخواست جدایی از آمریکا / سائوپائولو در سال 2010 با این استدلال که از سال 1970، ساعتها در کل منطقه یکسان است، رد شد.
زمان در آلمان، که توسط اروپا / برلین نشان داده میشود، برای سال 1945 که Trizone از قوانین ساعت تابستانی متفاوت از برلین استفاده میکرد، نادرست است.
دو منطقه وجود دارد که منطقه ای را پوشش می دهد که پس از سال 1970 توسط دو کشور تحت پوشش قرار گرفته است. پایگاه داده از تعاریف کشورها مطابق با ISO 3166-1 پیروی می کند که نسخه قبلی آن، ISO 3166، برای اولین بار در سال 1974 منتشر شد.
کد مرجع منطقه زمانی و پایگاه داده توسط گروهی از داوطلبان نگهداری می شود. آرتور دیوید اولسون بیشتر تغییرات را در کد مرجع منطقه زمانی انجام می دهد. Paul Eggert بیشتر تغییرات را در پایگاه داده منطقه زمانی انجام می دهد. تغییرات پیشنهادی به لیست پستی منطقه زمانی ارسال می شود که درگاهی به گروه خبری comp.time.tz Usenet است. فایل های منبع از طریق سرور IANA FTP توزیع می شوند. به طور معمول، این فایلها توسط توزیعکننده نرمافزاری مانند Debian گرفته میشوند، کامپایل میشوند و سپس منبع و باینریها به عنوان بخشی از آن توزیع بستهبندی میشوند. کاربران نهایی میتوانند به رویههای بهروزرسانی توزیع نرمافزار خود تکیه کنند، که ممکن است با تأخیر همراه باشد، یا منبع را مستقیماً دریافت کرده و خود فایلهای باینری را بسازند. IETF RFC 6557 را منتشر کرده است، «روشهایی برای حفظ پایگاه داده منطقه زمانی» که بهترین شیوهها را بر اساس اصول مشابه مستند میکند.
مسیر استاندارد برای پایگاه داده منطقه زمانی / usr / share / zoneinfo /
در توزیعهای لینوکس، macOS و برخی دیگر از سیستمهای مشابه یونیکس است.
مرزهای جغرافیایی در قالب مجموعه مختصات بخشی از پایگاه داده منطقه زمانی نیستند، اما مرزها توسط Evan Siroky در قالبهای GeoJSON و shapefile منتشر میشوند.
مخزن داده های محلی مشترک یونیکد (CLDR) به مناطقی در پایگاه داده منطقه زمانی اشاره دارد. با این حال، از آنجایی که نام یک منطقه می تواند از یک نسخه پایگاه داده منطقه زمانی به دیگری تغییر کند، CLDR UN / LOCODE را برای شهر مورد استفاده در نام منطقه، یا یک کد اختصاص داده شده داخلی در صورتی که چنین شهری برای منطقه وجود نداشته باشد، اختصاص می دهد. منطقه، به یک منطقه پایگاه داده منطقه زمانی.
پایگاه داده منطقه زمانی برای پردازش منطقه زمانی و تبدیل در بسیاری از سیستم های نرم افزاری کامپیوتری از جمله:
std::chrono::tzdb
شناسههای منطقه زمانی اولسون همچنین توسط مخزن دادههای محلی مشترک یونیکد (CLDR) و مؤلفههای بینالمللی برای یونیکد (ICU) استفاده میشوند. به عنوان مثال، جدول CLDR Windows–Tzid شناسههای منطقه زمانی مایکروسافت ویندوز را به نامهای استاندارد اولسون ترسیم میکند، اگرچه چنین نگاشتی نمیتواند کامل باشد زیرا تعداد مناطق زمانی در سیستمهای ویندوز به طور قابلتوجهی کمتر از پایگاه داده IANA TZ است
منشا این پروژه به سال 1986 یا قبل از آن برمی گردد.
در 30 سپتامبر 2011، دعوی حقوقی، Astrolabe، Inc. علیه اولسون و همکاران، در مورد حق چاپ در پایگاه داده ثبت شد. در نتیجه، در 6 اکتبر 2011، فهرست پستی پایگاه داده و سایت FTP بسته شد. این پرونده حول استفاده نگهبانان پایگاه داده از The American Atlas، توسط Thomas G. Shanks، و The International Atlas، توسط Thomas G. Shanks بود. و ریک پوتنگر این سازمان از بازتولید غیرمجاز دادههای اطلس در آرشیو فهرست پستی منطقه زمانی و در برخی از مجموعههای پیوند کمکی که با پایگاه داده نگهداری میشوند، شکایت کرد، اگرچه در واقع به خود پایگاه داده اشاره نکرد. این شکایت فقط به گردآوری دادههای منطقه زمانی تاریخی مربوط میشود و جداول منطقه زمانی جهان tzdata موجود را پوشش نمیدهد
این دعوا در 22 فوریه 2012 پس از مشارکت بنیاد مرز الکترونیکی حل شد، زمانی که اسطرلاب به طور داوطلبانه اقدام به رد دعوا کرد بدون اینکه هرگز به متهمان ابلاغ شود و با عهد و پیمانی موافقت کرد که در آینده شکایت نکند.
ICANN مسئولیت نگهداری پایگاه داده را در 14 اکتبر 2011 بر عهده گرفت. پایگاه داده کامل و شرح برنامه های نگهداری آن به صورت آنلاین از IANA در دسترس است.