<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://www.iran-pedia.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3ATime</id>
	<title>پودمان:Time - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://www.iran-pedia.org/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3ATime"/>
	<link rel="alternate" type="text/html" href="https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Time&amp;action=history"/>
	<updated>2026-04-05T19:32:04Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Time&amp;diff=15949&amp;oldid=prev</id>
		<title>Mahan: ۱ نسخه واردشده</title>
		<link rel="alternate" type="text/html" href="https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Time&amp;diff=15949&amp;oldid=prev"/>
		<updated>2017-12-15T16:48:54Z</updated>

		<summary type="html">&lt;p&gt;۱ نسخه واردشده&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fa&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;→ نسخهٔ قدیمی‌تر&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;نسخهٔ ‏۱۵ دسامبر ۲۰۱۷، ساعت ۱۸:۴۸&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;fa&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(بدون تفاوت)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key fairanpediadb-fa_:diff:1.41:old-15948:rev-15949 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mahan</name></author>
	</entry>
	<entry>
		<id>https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Time&amp;diff=15948&amp;oldid=prev</id>
		<title>Mahan در ‏۱۶ اوت ۲۰۱۷، ساعت ۱۳:۴۵</title>
		<link rel="alternate" type="text/html" href="https://www.iran-pedia.org/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Time&amp;diff=15948&amp;oldid=prev"/>
		<updated>2017-08-16T13:45:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;Module:No globals&amp;#039;)&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; T I M E Z O N E   P R O P E R T I E S &amp;gt;----------------------------------------&lt;br /&gt;
&lt;br /&gt;
When specifying utc offset do not use the minus character (U+2212) for offsets west of 0 meridian; use the minus-hyphen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local tz = {																	-- these are ordered by UTC offset +HH:MM followed by -HH:MM&lt;br /&gt;
&lt;br /&gt;
------------------------------&amp;lt; E A S T   U T C + H H : M M &amp;gt;--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[&amp;#039;utc&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;UTC&amp;#039;,			-- (required) abbreviation to use during standard time&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,			-- abbreviation to use during daylight saving time&lt;br /&gt;
	utc_offset = &amp;#039;00:00&amp;#039;,	-- (required) hours and minutes offset from UTC for this timezone; &amp;#039;+&amp;#039; is optional; &amp;#039;-&amp;#039; (hyphen-minus) is required for timezones west of 0 meridian&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,				-- date format typically used in the time zone&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,		-- daylight saving begins; e.g. 2nd Sunday in March; also last; empty string if not observed&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,			-- (required if dst_begins is set) daylight saving begins; e.g. 1st Sunday in November; ignored if dst_begins not set&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,			-- (required if dst_begins is set) local time on the day that dst begins/ends; for EU DST rules specify utc time: e.g.: &amp;#039;01:00 UTC&amp;#039;&lt;br /&gt;
	dst_e_time = &amp;#039;&amp;#039;,		-- local daylight saving time on the day that dst ends; only when different from dst_time; see acst for an example&lt;br /&gt;
	article = &amp;#039;Coordinated Universal Time&amp;#039;	-- (required) name of related Iranpedia article without markup&lt;br /&gt;
	},&lt;br /&gt;
[&amp;#039;gmt&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;GMT&amp;#039;,			&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;00:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Greenwich Mean Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;gmt-uk&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;GMT&amp;#039;,			&lt;br /&gt;
	dst_abbr = &amp;#039;BST&amp;#039;,															-- British Summer Time&lt;br /&gt;
	utc_offset = &amp;#039;00:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;last Sunday of March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;last Sunday of October&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;01:00 UTC&amp;#039;,														-- 01:00 standard time is same as 01:00 UTC&lt;br /&gt;
	article = &amp;#039;Time in the United Kingdom&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;gmt-ie&amp;#039;] = {																	-- ist is shared with Indian Standard Time so use gmt-ie&lt;br /&gt;
	abbr = &amp;#039;GMT&amp;#039;,																-- winter time&lt;br /&gt;
	dst_abbr = &amp;#039;IST&amp;#039;,															-- Irish Standard Time occurs in summer&lt;br /&gt;
	utc_offset = &amp;#039;00:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;last Sunday of March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;last Sunday of October&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;01:00 UTC&amp;#039;,														-- 01:00 standard time is same as 01:00 UTC&lt;br /&gt;
	article = &amp;#039;Time in Ireland&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;wet&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;WET&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;WEST&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;00:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;last Sunday of March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;last Sunday of October&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;01:00 UTC&amp;#039;,														-- 01:00 standard time is same as 01:00 UTC&lt;br /&gt;
	article = &amp;#039;Western European Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;cet&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;CET&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;CEST&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;01:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;last Sunday of March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;last Sunday of October&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;01:00 UTC&amp;#039;,														-- 02:00 standard time is same as 01:00 UTC&lt;br /&gt;
	article = &amp;#039;Central European Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;eet&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;EET&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;EEST&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;last Sunday of March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;last Sunday of October&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;01:00 UTC&amp;#039;,														-- 03:00 standard time is same as 01:00 UTC&lt;br /&gt;
	article = &amp;#039;Eastern European Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;usz1&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;USZ1&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Kaliningrad Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;msk&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;MSK&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;03:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Moscow Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;samt&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;SAMT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;04:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Samara Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;yekt&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;YEKT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;05:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Yekaterinburg Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;pkt&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;PKT&amp;#039;,			&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;05:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Pakistan Standard Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;ist&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;IST&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;05:30&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Indian Standard Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;npt&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;NPT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;05:45&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Nepal Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;bst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;BST&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;06:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Bangladesh Standard Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;omst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;OMST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;06:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Omsk Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;krat&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;KRAT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;07:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Krasnoyarsk Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;wib&amp;#039;] = {																		-- western indonesia&lt;br /&gt;
	abbr = &amp;#039;WIB&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;07:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Time in Indonesia&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;awst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;AWST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;08:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Time in Australia&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;bt&amp;#039;] = {																		-- same as China standard time (CST)&lt;br /&gt;
	abbr = &amp;#039;BT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;08:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Time in China&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;irkt&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;IRKT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;08:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Irkutsk Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;wita&amp;#039;] = {		-- central&lt;br /&gt;
	abbr = &amp;#039;WITA&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;08:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Time in Indonesia&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;jst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;JST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;09:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;iso&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Japan Standard Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;kst&amp;#039;] = {&lt;br /&gt;
        abbr = &amp;#039;KST&amp;#039;,                      &lt;br /&gt;
        dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
        utc_offset = &amp;#039;09:00&amp;#039;,&lt;br /&gt;
        df = &amp;#039;iso&amp;#039;,&lt;br /&gt;
        dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
        dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
        dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
        dst_e_time = &amp;#039;&amp;#039;,&lt;br /&gt;
        article = &amp;#039;Time in South Korea&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;wit&amp;#039;] = {																		-- eastern Indonesia (same as old template&amp;#039;s eit)&lt;br /&gt;
	abbr = &amp;#039;WIT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;09:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Time in Indonesia&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;yakt&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;YAKT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;09:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Yakutsk Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;acst&amp;#039;] = {																	-- Northern Territory, South Australia time&lt;br /&gt;
	abbr = &amp;#039;ACST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;ACDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;09:30&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;first Sunday in October&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;first Sunday in April&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	dst_e_time = &amp;#039;03:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Time in Australia&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;aest&amp;#039;] = {		-- QLD, NSW, TAS, VIC, ACT&lt;br /&gt;
	abbr = &amp;#039;AEST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;AEDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;10:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;first Sunday in October&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;first Sunday in April&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,															-- begins at 02:00 AEST&lt;br /&gt;
	dst_e_time = &amp;#039;03:00&amp;#039;,														-- ends at 02:00 AEST which is 03:00 AEDT&lt;br /&gt;
	article = &amp;#039;Time in Australia&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;chst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;ChST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;10:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;mdy&amp;#039;,																	-- because a US territory?&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Chamorro Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;vlat&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;VLAT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;10:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Vladivostok Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;sret&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;SRET&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;11:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Srednekolymsk Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;nzst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;NZST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;NZDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;12:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;last Sunday in September&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;first Sunday in April&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,															-- begins at 02:00 NZST&lt;br /&gt;
	dst_e_time = &amp;#039;03:00&amp;#039;,														-- ends at 02:00 NZST which is 03:00 NZDT&lt;br /&gt;
	article = &amp;#039;Time in New Zealand&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;pett&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;PETT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;12:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Kamchatka Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;idle&amp;#039;] = {																	-- international dateline east&lt;br /&gt;
	abbr = &amp;#039;IDLE&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;12:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;iso&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;UTC+12:00&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
------------------------------&amp;lt; W E S T   U T C - H H : M M &amp;gt;--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
[&amp;#039;pmst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;PMST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;PMDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-03:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,																	-- because France&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,											-- North American rules&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;UTC−03:00&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;wgt&amp;#039;] = {																		-- western greenland time?  Not for Thule Airbase which observes US DST rules; requires own properties&lt;br /&gt;
	abbr = &amp;#039;WGT&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;WGST&amp;#039;,															-- ??? what is the correct abbreviation?&lt;br /&gt;
	utc_offset = &amp;#039;-03:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;last Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;last Sunday in October&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;01:00 UTC&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Time in Denmark&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;nst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;NST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;NDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-03:30&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Newfoundland Standard Time&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;ast&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;AST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;ADT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-04:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;dmy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Atlantic Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;est&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;EST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;EDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-05:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;mdy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Eastern Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;cst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;CST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;CDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-06:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;mdy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Central Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;mst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;MST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;MDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-07:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;mdy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Mountain Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;pst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;PST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;PDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-08:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;mdy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Pacific Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;akst&amp;#039;] = {&lt;br /&gt;
	abbr = &amp;#039;AKST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;AKDT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-09:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;mdy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Alaska Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;hast&amp;#039;] = {	-- same as AleutST and HST&lt;br /&gt;
	abbr = &amp;#039;HAST&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;HADT&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-10:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;mdy&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;2nd Sunday in March&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;1st Sunday in November&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;02:00&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Hawaii–Aleutian Time Zone&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;idlw&amp;#039;] = {																	-- international dateline west&lt;br /&gt;
	abbr = &amp;#039;IDLW&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-12:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;iso&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;UTC−12:00&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
[&amp;#039;aoe&amp;#039;] = {																		-- last location for any date&lt;br /&gt;
	abbr = &amp;#039;AoE&amp;#039;,&lt;br /&gt;
	dst_abbr = &amp;#039;&amp;#039;,&lt;br /&gt;
	utc_offset = &amp;#039;-12:00&amp;#039;,&lt;br /&gt;
	df = &amp;#039;iso&amp;#039;,&lt;br /&gt;
	dst_begins = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_ends = &amp;#039;&amp;#039;,&lt;br /&gt;
	dst_time = &amp;#039;&amp;#039;,&lt;br /&gt;
	article = &amp;#039;Anywhere on Earth&amp;#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
------------------------------&amp;lt; M I L I T A R Y &amp;gt;--------------------------------------------------------------&lt;br /&gt;
-- {{cite web |url=http://wwp.greenwichmeantime.com/info/timezone.htm |title=Military and Civilian Time Designations |accessdate=2016-03-25 |website=Greenwich Mean Time}}&lt;br /&gt;
--http://astro.ukho.gov.uk/nao/miscellanea/WMTZ/Wmtz160224.pdf&lt;br /&gt;
[&amp;#039;a&amp;#039;] = {abbr = &amp;#039;A&amp;#039;, utc_offset = &amp;#039;01:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;b&amp;#039;] = {abbr = &amp;#039;B&amp;#039;, utc_offset = &amp;#039;02:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;c&amp;#039;] = {abbr = &amp;#039;C&amp;#039;, utc_offset = &amp;#039;03:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;c*&amp;#039;] = {abbr = &amp;#039;C*&amp;#039;, utc_offset = &amp;#039;03:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;d&amp;#039;] = {abbr = &amp;#039;D&amp;#039;, utc_offset = &amp;#039;04:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;d*&amp;#039;] = {abbr = &amp;#039;D*&amp;#039;, utc_offset = &amp;#039;04:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;e&amp;#039;] = {abbr = &amp;#039;E&amp;#039;, utc_offset = &amp;#039;05:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;e*&amp;#039;] = {abbr = &amp;#039;E*&amp;#039;, utc_offset = &amp;#039;05:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;e+&amp;#039;] = {abbr = &amp;#039;E&amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;font-size:120%%;&amp;quot;&amp;gt;†&amp;lt;/span&amp;gt;&amp;#039;, utc_offset = &amp;#039;05:45&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;f&amp;#039;] = {abbr = &amp;#039;F&amp;#039;, utc_offset = &amp;#039;06:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;f*&amp;#039;] = {abbr = &amp;#039;F*&amp;#039;, utc_offset = &amp;#039;06:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;g&amp;#039;] = {abbr = &amp;#039;G&amp;#039;, utc_offset = &amp;#039;07:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;h&amp;#039;] = {abbr = &amp;#039;H&amp;#039;, utc_offset = &amp;#039;08:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;h*&amp;#039;] = {abbr = &amp;#039;H*&amp;#039;, utc_offset = &amp;#039;08:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;i&amp;#039;] = {abbr = &amp;#039;I&amp;#039;, utc_offset = &amp;#039;09:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;i*&amp;#039;] = {abbr = &amp;#039;I*&amp;#039;, utc_offset = &amp;#039;09:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;k&amp;#039;] = {abbr = &amp;#039;K&amp;#039;, utc_offset = &amp;#039;10:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;k*&amp;#039;] = {abbr = &amp;#039;K*&amp;#039;, utc_offset = &amp;#039;10:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;l&amp;#039;] = {abbr = &amp;#039;L&amp;#039;, utc_offset = &amp;#039;11:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;l*&amp;#039;] = {abbr = &amp;#039;L*&amp;#039;, utc_offset = &amp;#039;11:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;m&amp;#039;] = {abbr = &amp;#039;M&amp;#039;, utc_offset = &amp;#039;12:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;m++&amp;#039;] = {abbr = &amp;#039;M‡&amp;#039;, utc_offset = &amp;#039;12:45&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;m*&amp;#039;] = {abbr = &amp;#039;M*&amp;#039;, utc_offset = &amp;#039;13:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;m+&amp;#039;] = {abbr = &amp;#039;M†&amp;#039;, utc_offset = &amp;#039;14:00&amp;#039;, df = &amp;#039;iso&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;n&amp;#039;] = {abbr = &amp;#039;N&amp;#039;, utc_offset = &amp;#039;-01:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;o&amp;#039;] = {abbr = &amp;#039;O&amp;#039;, utc_offset = &amp;#039;-02:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;p&amp;#039;] = {abbr = &amp;#039;P&amp;#039;, utc_offset = &amp;#039;-03:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;p*&amp;#039;] = {abbr = &amp;#039;P*&amp;#039;, utc_offset = &amp;#039;-03:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;q&amp;#039;] = {abbr = &amp;#039;Q&amp;#039;, utc_offset = &amp;#039;-04:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;q*&amp;#039;] = {abbr = &amp;#039;Q*&amp;#039;, utc_offset = &amp;#039;-04:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;r&amp;#039;] = {abbr = &amp;#039;R&amp;#039;, utc_offset = &amp;#039;-05:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;s&amp;#039;] = {abbr = &amp;#039;S&amp;#039;, utc_offset = &amp;#039;-06:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;t&amp;#039;] = {abbr = &amp;#039;T&amp;#039;, utc_offset = &amp;#039;-07:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;u&amp;#039;] = {abbr = &amp;#039;U&amp;#039;, utc_offset = &amp;#039;-08:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;u*&amp;#039;] = {abbr = &amp;#039;U*&amp;#039;, utc_offset = &amp;#039;-08:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;v&amp;#039;] = {abbr = &amp;#039;V&amp;#039;, utc_offset = &amp;#039;-09:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;v*&amp;#039;] = {abbr = &amp;#039;V*&amp;#039;, utc_offset = &amp;#039;-09:30&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;w&amp;#039;] = {abbr = &amp;#039;W&amp;#039;, utc_offset = &amp;#039;-10:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;x&amp;#039;] = {abbr = &amp;#039;X&amp;#039;, utc_offset = &amp;#039;-11:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;y&amp;#039;] = {abbr = &amp;#039;Y&amp;#039;, utc_offset = &amp;#039;-12:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
[&amp;#039;z&amp;#039;] = {abbr = &amp;#039;Z&amp;#039;, utc_offset = &amp;#039;±00:00&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;List of military time zones&amp;#039;},&lt;br /&gt;
&lt;br /&gt;
------------------------------&amp;lt; U T C   O F F S E T S &amp;gt;--------------------------------------------------------&lt;br /&gt;
-- this table entry filled by the code in p.time()&lt;br /&gt;
&lt;br /&gt;
[&amp;#039;utc_offsets&amp;#039;] = {abbr = &amp;#039;&amp;#039;, utc_offset = &amp;#039;&amp;#039;, df = &amp;#039;iso&amp;#039;, article = &amp;#039;&amp;#039;},&lt;br /&gt;
}																				-- end of tz table&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; I S _ S E T &amp;gt;------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Whether variable is set or not.  A variable is set when it is not nil and not empty.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function is_set( var )&lt;br /&gt;
	return not (var == nil or var == &amp;#039;&amp;#039;);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; D E C O D E _ D S T _ E V E N T &amp;gt;----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
extract ordinal, day-name, and month from daylight saving start/end definition string as digits:&lt;br /&gt;
	Second Sunday in March&lt;br /&gt;
returns&lt;br /&gt;
	2 0 3&lt;br /&gt;
&lt;br /&gt;
Casing doesn&amp;#039;t matter but the form of the string does:&lt;br /&gt;
	&amp;lt;ordinal&amp;gt; &amp;lt;day&amp;gt; &amp;lt;any single word&amp;gt; &amp;lt;month&amp;gt; – all are separated by spaces&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function decode_dst_event (dst_event_string)&lt;br /&gt;
	local ord, day, month;&lt;br /&gt;
	&lt;br /&gt;
	local ordinals = {[&amp;#039;1st&amp;#039;] = 1, [&amp;#039;first&amp;#039;] = 1, [&amp;#039;2nd&amp;#039;] = 2, [&amp;#039;second&amp;#039;] = 2, [&amp;#039;3rd&amp;#039;] = 3, [&amp;#039;third&amp;#039;] = 3, [&amp;#039;4th&amp;#039;] = 4, [&amp;#039;fourth&amp;#039;] = 4, [&amp;#039;5th&amp;#039;] = 5, [&amp;#039;fifth&amp;#039;] = 5, [&amp;#039;last&amp;#039;] = -1};&lt;br /&gt;
	local days = {[&amp;#039;sunday&amp;#039;] = 0, [&amp;#039;monday&amp;#039;] = 1, [&amp;#039;tuesday&amp;#039;] = 2, [&amp;#039;wednesday&amp;#039;] = 3, [&amp;#039;thursday&amp;#039;] = 4, [&amp;#039;friday&amp;#039;] = 5, [&amp;#039;saturday&amp;#039;] = 6};&lt;br /&gt;
	local months = {[&amp;#039;january&amp;#039;] = 1, [&amp;#039;february&amp;#039;] = 2, [&amp;#039;march&amp;#039;] = 3, [&amp;#039;april&amp;#039;] = 4, [&amp;#039;may&amp;#039;] = 5, [&amp;#039;june&amp;#039;] = 6,&lt;br /&gt;
		[&amp;#039;july&amp;#039;] = 7, [&amp;#039;august&amp;#039;] = 8, [&amp;#039;september&amp;#039;] = 9, [&amp;#039;october&amp;#039;] = 10, [&amp;#039;november&amp;#039;] = 11, [&amp;#039;december&amp;#039;] = 12};&lt;br /&gt;
	&lt;br /&gt;
	dst_event_string = dst_event_string:lower();								-- force the string to lower case because that is how the tables above are indexed&lt;br /&gt;
	ord, day, month = dst_event_string:match (&amp;#039;([%a%d]+)%s+(%a+)%s+%a+%s+(%a+)&amp;#039;);&lt;br /&gt;
	&lt;br /&gt;
	if not (is_set (ord) and is_set (day) and is_set (month)) then				-- if one or more of these not set, then pattern didn&amp;#039;t match&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return ordinals[ord], days[day], months[month];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; G E T _ D A Y S _ I N _ M O N T H &amp;gt;--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Returns the number of days in the month where month is a number 1–12 and year is four-digit Gregorian calendar.&lt;br /&gt;
Accounts for leap year.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function get_days_in_month (year, month)&lt;br /&gt;
	local days_in_month = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};&lt;br /&gt;
	&lt;br /&gt;
	year = tonumber (year);														-- force these to be numbers just in case&lt;br /&gt;
	month = tonumber (month);&lt;br /&gt;
&lt;br /&gt;
	if (2 == month) then														-- if February&lt;br /&gt;
		if (0 == (year%4) and (0 ~= (year%100) or 0 == (year%400))) then		-- is year a leap year?&lt;br /&gt;
			return 29;															-- if leap year then 29 days in February&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return days_in_month [month];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; G E T _ D S T _ M O N T H _ D A Y &amp;gt;--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Return the date (month and day of the month) for the day that is the ordinal (nth) day-name in month (second&lt;br /&gt;
Friday in June) of the current year&lt;br /&gt;
&lt;br /&gt;
timestamp is today&amp;#039;s date-time number from os.time(); used to supply year&lt;br /&gt;
timezone is the timezone parameter value from the template call&lt;br /&gt;
&lt;br /&gt;
Equations used in this function taken from Template:Weekday_in_month&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function get_dst_month_day (timestamp, timezone, start)&lt;br /&gt;
	local ord, weekday_num, month;&lt;br /&gt;
	local first_day_of_dst_month_num;&lt;br /&gt;
	local last_day_of_dst_month_num;&lt;br /&gt;
	local days_in_month;&lt;br /&gt;
	local year;&lt;br /&gt;
&lt;br /&gt;
	if true == start then&lt;br /&gt;
		ord, weekday_num, month = decode_dst_event (tz[timezone].dst_begins);	-- get start string and convert to digits&lt;br /&gt;
	else&lt;br /&gt;
		ord, weekday_num, month = decode_dst_event (tz[timezone].dst_ends);		-- get end string and convert to digits&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not (is_set (ord) and is_set (weekday_num) and is_set (month)) then&lt;br /&gt;
		return nil;																-- could not decode event string&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	year = os.date (&amp;#039;%Y&amp;#039;, timestamp);&lt;br /&gt;
&lt;br /&gt;
	if -1 == ord then		-- j = t + 7×(n + 1) - (wt - w) mod 7				-- if event occurs on the last day-name of the month (&amp;#039;last Sunday of October&amp;#039;)&lt;br /&gt;
		days_in_month = get_days_in_month (year, month);&lt;br /&gt;
		last_day_of_dst_month_num =  os.date (&amp;#039;%w&amp;#039;, os.time ({[&amp;#039;year&amp;#039;]=year, [&amp;#039;month&amp;#039;]=month, [&amp;#039;day&amp;#039;]=days_in_month}));&lt;br /&gt;
		return month, days_in_month + 7*(ord + 1) - ((last_day_of_dst_month_num - weekday_num) % 7);&lt;br /&gt;
	else	-- j = 7×n - 6 + (w - w1) mod 7&lt;br /&gt;
		first_day_of_dst_month_num = os.date (&amp;#039;%w&amp;#039;, os.time ({[&amp;#039;year&amp;#039;]=year, [&amp;#039;month&amp;#039;]=month, [&amp;#039;day&amp;#039;]=1}))&lt;br /&gt;
		return month, 7 * ord - 6 + (weekday_num - first_day_of_dst_month_num) % 7;		-- return month and calculated date&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; G E T _ U T C _ O F F S E T &amp;gt;--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Get utc offset in hours and minutes, convert to seconds.  If the offset can&amp;#039;t be converted return 0.&lt;br /&gt;
TODO: return error message?&lt;br /&gt;
TODO: limit check this? +/-n hours?&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function get_utc_offset (timezone)&lt;br /&gt;
	local sign;&lt;br /&gt;
	local hours;&lt;br /&gt;
	local minutes;&lt;br /&gt;
	&lt;br /&gt;
	sign, hours, minutes = mw.ustring.match (tz[timezone].utc_offset, &amp;#039;([%+%-±−]?)(%d%d):(%d%d)&amp;#039;);&lt;br /&gt;
	&lt;br /&gt;
	if &amp;#039;-&amp;#039; == sign then sign = -1; else sign = 1; end&lt;br /&gt;
	if is_set (hours) and is_set (minutes) then&lt;br /&gt;
		return sign * ((hours * 3600) + (minutes * 60));&lt;br /&gt;
	else&lt;br /&gt;
		return nil;																-- we require that all timezone table have what appears to be a valid offset&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; M A K E _ D S T _ T I M E S T A M P S &amp;gt;----------------------------------------&lt;br /&gt;
&lt;br /&gt;
Return UTC timestamps for the date/time of daylight saving time events (beginning and ending).  These timestamps&lt;br /&gt;
will be compared to current UTC time.  A dst timestamp is the date/time in seconds UTC for the timezone at the&lt;br /&gt;
hour of the dst event.&lt;br /&gt;
&lt;br /&gt;
For dst rules that specify local event times, the timestamp is the sum of:&lt;br /&gt;
	timestamp = current year + dst_month + dst_day + dst_time (all in seconds) local time&lt;br /&gt;
Adjust local time to UTC by subtracting utc_offset:&lt;br /&gt;
	timestamp = timestamp - utc_offset (in seconds)&lt;br /&gt;
For dst_end timestamp, subtract an hour for DST&lt;br /&gt;
	timestamp = timestamp - 3600 (in seconds)&lt;br /&gt;
&lt;br /&gt;
For dst rules that specify utc event time the process is the same except that utc offset is not subtracted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function make_dst_timestamps (timestamp, timezone)&lt;br /&gt;
	local dst_begin, dst_end;													-- dst begin and end time stamps &lt;br /&gt;
	local year;																	-- current year&lt;br /&gt;
	local dst_b_month, dst_e_month, dst_day;									-- month and date of dst event&lt;br /&gt;
	local dst_hour, dst_minute;													-- hour and minute of dst event on year-dst_month-dst_day&lt;br /&gt;
	local invert = false;														-- flag to pass on when dst_begin month is numerically larger than dst_end month (southern hemisphere)&lt;br /&gt;
	local utc_offset;&lt;br /&gt;
	local utc_flag;&lt;br /&gt;
&lt;br /&gt;
	year = os.date (&amp;#039;%Y&amp;#039;, timestamp);											-- current year&lt;br /&gt;
	utc_offset = get_utc_offset (timezone);&lt;br /&gt;
	if not is_set (utc_offset) then												-- utc offset is a required timezone property&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	dst_b_month, dst_day = get_dst_month_day (timestamp, timezone, true);		-- month and day that dst begins&lt;br /&gt;
	if not is_set (dst_b_month) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	dst_hour, dst_minute = tz[timezone].dst_time:match (&amp;#039;(%d%d):(%d%d)&amp;#039;);		-- get dst time&lt;br /&gt;
	utc_flag = tz[timezone].dst_time:find (&amp;#039;[Uu][Tt][Cc]%s*$&amp;#039;);					-- set flag when dst events occur at a specified utc time&lt;br /&gt;
&lt;br /&gt;
	dst_begin = os.time ({[&amp;#039;year&amp;#039;] = year, [&amp;#039;month&amp;#039;] = dst_b_month, [&amp;#039;day&amp;#039;] = dst_day, [&amp;#039;hour&amp;#039;] = dst_hour, [&amp;#039;min&amp;#039;] = dst_minute});	-- form start timestamp&lt;br /&gt;
	if not is_set (utc_flag) then												-- if dst events are specified to occur at local time&lt;br /&gt;
		dst_begin = dst_begin - utc_offset;										-- adjust local time to utc by subtracting utc offset&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	dst_e_month, dst_day = get_dst_month_day (timestamp, timezone, false);		-- month and day that dst ends&lt;br /&gt;
	if not is_set (dst_e_month) then&lt;br /&gt;
		return nil;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if is_set (tz[timezone].dst_e_time) then&lt;br /&gt;
		dst_hour, dst_minute = tz[timezone].dst_e_time:match (&amp;#039;(%d%d):(%d%d)&amp;#039;);	-- get ending dst time; this one for those locales that use different start and end times&lt;br /&gt;
		utc_flag = tz[timezone].dst_e_time:find (&amp;#039;[Uu][Tt][Cc]%s*$&amp;#039;);			-- set flag if dst is pegged to utc time&lt;br /&gt;
	end	&lt;br /&gt;
&lt;br /&gt;
	dst_end = os.time ({[&amp;#039;year&amp;#039;] = year, [&amp;#039;month&amp;#039;] = dst_e_month, [&amp;#039;day&amp;#039;] = dst_day, [&amp;#039;hour&amp;#039;] = dst_hour, [&amp;#039;min&amp;#039;] = dst_minute});	-- form end timestamp&lt;br /&gt;
	if not is_set (utc_flag) then												-- if dst events are specified to occur at local time&lt;br /&gt;
		dst_end = dst_end - 3600;												-- assume that local end time is DST so adjust to local ST&lt;br /&gt;
		dst_end = dst_end - utc_offset;											-- adjust local time to utc by subtracting utc offset&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	if dst_b_month &amp;gt; dst_e_month then&lt;br /&gt;
		invert = true;															-- true for southern hemisphere eg: start September YYYY end April YYYY+1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return dst_begin, dst_end, invert;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; G E T _ T E S T _ T I M E &amp;gt;----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
decode ISO formatted date/time into a table suitable for os.time().  For testing, this time is utc just as is&lt;br /&gt;
returned by the os.time() function.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function get_test_time (iso_date)&lt;br /&gt;
	local year, month, day, hour, minute, second;&lt;br /&gt;
&lt;br /&gt;
	year, month, day, hour, minute, second = iso_date:match (&amp;#039;(%d%d%d%d)\-(%d%d)\-(%d%d)T(%d%d):(%d%d):(%d%d)&amp;#039;);&lt;br /&gt;
	if not year then&lt;br /&gt;
		return nil;																-- test time did not match the specified pattern&lt;br /&gt;
	end&lt;br /&gt;
	return {[&amp;#039;year&amp;#039;] = year, [&amp;#039;month&amp;#039;] = month, [&amp;#039;day&amp;#039;] = day, [&amp;#039;hour&amp;#039;] = hour, [&amp;#039;min&amp;#039;] = minute, [&amp;#039;sec&amp;#039;] = second};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[-------------------------&amp;lt; P . T I M E &amp;gt;------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
This template takes several parameters; none are required:&lt;br /&gt;
	1. the time zone abbreviation (positional, always the first unnamed parameter)&lt;br /&gt;
	2. a date format flag; second positional parameter or |df=; can have one of several assigned values:&lt;br /&gt;
		y – display output time in dmy format&lt;br /&gt;
		dmy – same as &amp;#039;y&amp;#039;&lt;br /&gt;
		mdy – default; included for completeness&lt;br /&gt;
		iso – display output time in YYYY-MM-DDTHH:mm format&lt;br /&gt;
	3. |dst= when set to &amp;#039;no&amp;#039; disables dst calculations for locations that do not observe dst – Arizona in MST&lt;br /&gt;
	4. |_TEST_TIME_= a specific utc time in ISO date time format used for testing this code&lt;br /&gt;
	&lt;br /&gt;
TODO: convert _TEST_TIME_ to |time=?&lt;br /&gt;
&lt;br /&gt;
Timezone abbreviations can be found here: [[List_of_time_zone_abbreviations]]&lt;br /&gt;
&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
function p.time (frame)&lt;br /&gt;
	local args = getArgs(frame);&lt;br /&gt;
	local utc_timestamp, timestamp;												-- current or _TEST_TIME_ timestamps; timestamp is local ST or DST time used in output&lt;br /&gt;
	local dst_begin_ts, dst_end_ts;												-- DST begin and end timestamps in UTC&lt;br /&gt;
	local tz_abbr;																-- select ST or DST timezone abbreviaion used in output &lt;br /&gt;
	local tz_string;															-- output time in |df= format&lt;br /&gt;
	local utc_offset;&lt;br /&gt;
	local invert;																-- true when southern hemisphere&lt;br /&gt;
	local df;																	-- date format flag; the |df= parameter&lt;br /&gt;
	local hf;																	-- hour format flag; derived from the |df=dmy12 and |df=mdy12 parameters&lt;br /&gt;
&lt;br /&gt;
	if args[1] then&lt;br /&gt;
		args[1] = args[1]:lower();												-- make lower case because tz table member indexes are lower case&lt;br /&gt;
&lt;br /&gt;
		if mw.ustring.match (args[1], &amp;#039;utc[%+%-±−]?%d%d:%d%d&amp;#039;) then				-- if rendering time for a UTC offset timezone&lt;br /&gt;
			tz[&amp;#039;utc_offsets&amp;#039;].abbr = args[1]:upper():gsub(&amp;#039;%-&amp;#039;, &amp;#039;−&amp;#039;);			-- set the link label to upper case and replace hyphen with a minus character (U+2212)&lt;br /&gt;
			tz[&amp;#039;utc_offsets&amp;#039;].article = tz[&amp;#039;utc_offsets&amp;#039;].abbr;					-- article title same as abbreviation&lt;br /&gt;
			tz[&amp;#039;utc_offsets&amp;#039;].utc_offset = mw.ustring.match (args[1], &amp;#039;utc([%+%-±−]?%d%d:%d%d)&amp;#039;):gsub(&amp;#039;−&amp;#039;, &amp;#039;%-&amp;#039;);	-- extract the offset value; replace minus character with hyphen&lt;br /&gt;
			args[1] = &amp;#039;utc_offsets&amp;#039;;											-- point to the generic utc offsets table &lt;br /&gt;
		end&lt;br /&gt;
		if not is_set (tz[args[1]]) then&lt;br /&gt;
			return &amp;#039;&amp;lt;span style=&amp;quot;font-size:100%&amp;quot; class=&amp;quot;error&amp;quot;&amp;gt;{{time}} – unknown timezone ([[Template:Time#Error messages|help]])&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		args[1] = &amp;#039;utc&amp;#039;;														-- default to utc&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	df = args.df or args[2] or tz[args[1]].df or &amp;#039;&amp;#039;;							-- template |df= overrides typical df from tz properties TODO: error check these values?&lt;br /&gt;
	if is_set (df) then&lt;br /&gt;
		df = df:lower();														-- lower case because we will compare to lower case values later&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	hf = df:match (&amp;#039;%l%ly(12)&amp;#039;);												-- hf == &amp;#039;12&amp;#039; selects 12-hour AM/PM display; other values ignored and 24 hour clock time displayed &lt;br /&gt;
	if is_set (hf) then&lt;br /&gt;
		df = df:match (&amp;#039;(%l%ly)12&amp;#039;);											-- extract df&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if is_set (args._TEST_TIME_) then											-- typically used to test the code at a specific utc time&lt;br /&gt;
		local test_time = get_test_time (args._TEST_TIME_);&lt;br /&gt;
		if not test_time then&lt;br /&gt;
			return &amp;#039;&amp;lt;span style=&amp;quot;font-size:100%&amp;quot; class=&amp;quot;error&amp;quot;&amp;gt;{{time}} – malformed or incomplete _TEST_TIME_ ([[Template:Time#Error messages|help]])&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
--		utc_timestamp = os.time(get_test_time (args._TEST_TIME_));&lt;br /&gt;
		utc_timestamp = os.time(test_time);&lt;br /&gt;
	else&lt;br /&gt;
		utc_timestamp = os.time ();												-- get current server time (UTC)&lt;br /&gt;
	end&lt;br /&gt;
	utc_offset = get_utc_offset (args[1]);										-- utc offset for specified timezone&lt;br /&gt;
	timestamp = utc_timestamp + utc_offset;										-- make local time timestamp&lt;br /&gt;
&lt;br /&gt;
	if &amp;#039;no&amp;#039; == args.dst then													-- for timezones that DO observe dst but for this location ...&lt;br /&gt;
		tz_abbr = tz[args[1]].abbr;												-- ... dst is not observed (|dst=no) show time as standard time&lt;br /&gt;
	else&lt;br /&gt;
		if is_set (tz[args[1]].dst_begins) and is_set (tz[args[1]].dst_ends) and is_set (tz[args[1]].dst_time) then		-- make sure we have all of the parts&lt;br /&gt;
			dst_begin_ts, dst_end_ts, invert = make_dst_timestamps (timestamp, args[1]);	-- get begin and end dst timestamps and invert flag&lt;br /&gt;
&lt;br /&gt;
			if nil == dst_begin_ts or nil == dst_end_ts then&lt;br /&gt;
				return &amp;#039;&amp;lt;span style=&amp;quot;font-size:100%&amp;quot; class=&amp;quot;error&amp;quot;&amp;gt;{{time}} – error calculating dst timestamps ([[Template:Time#Error messages|help]])&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			if invert then														-- southern hemisphere; use beginning and ending of standard time in the comparison&lt;br /&gt;
				if utc_timestamp &amp;gt;= dst_end_ts and utc_timestamp &amp;lt; dst_begin_ts then	-- is current date time standard time?&lt;br /&gt;
					tz_abbr = tz[args[1]].abbr;									-- standard time abbreviation&lt;br /&gt;
				else		&lt;br /&gt;
					timestamp = timestamp + 3600;								-- add an hour for &lt;br /&gt;
					tz_abbr = tz[args[1]].dst_abbr;								-- dst abbreviation&lt;br /&gt;
				end&lt;br /&gt;
			else																-- northern hemisphere&lt;br /&gt;
				if utc_timestamp &amp;gt;= dst_begin_ts and utc_timestamp &amp;lt; dst_end_ts then	-- all timestamps are UTC&lt;br /&gt;
					timestamp = timestamp + 3600;								-- add an hour&lt;br /&gt;
					tz_abbr = tz[args[1]].dst_abbr;&lt;br /&gt;
				else&lt;br /&gt;
					tz_abbr = tz[args[1]].abbr;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		elseif is_set (tz[args[1]].dst_begins) or is_set (tz[args[1]].dst_ends) or is_set (tz[args[1]].dst_time) then	-- if some but not all not all parts then emit error message&lt;br /&gt;
			return &amp;#039;&amp;lt;span style=&amp;quot;font-size:100%&amp;quot; class=&amp;quot;error&amp;quot;&amp;gt;{{time}} – incomplete definition for &amp;#039; .. args[1]:upper() .. &amp;#039; ([[Template:Time#Error messages|help]])&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
		else&lt;br /&gt;
			tz_abbr = tz[args[1]].abbr;											-- dst not observed for this timezone&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if &amp;#039;y&amp;#039; == df or &amp;#039;dmy&amp;#039; == df then											-- format the output (|df=y is legacy from original template)&lt;br /&gt;
		if &amp;#039;12&amp;#039; == hf then&lt;br /&gt;
			tz_string = mw.text.trim (os.date (&amp;#039;%l:%M %p, %e %B %Y&amp;#039;, timestamp));	-- dmy, 12 hour am/pm&lt;br /&gt;
		else&lt;br /&gt;
			tz_string = os.date (&amp;#039;%R, %e %B %Y&amp;#039;, timestamp);					-- dmy&lt;br /&gt;
		end&lt;br /&gt;
	elseif &amp;#039;iso&amp;#039; == df then&lt;br /&gt;
		tz_string = os.date (&amp;#039;%FT%R&amp;#039;, timestamp);								-- iso&lt;br /&gt;
	else&lt;br /&gt;
		if &amp;#039;12&amp;#039; == hf then&lt;br /&gt;
			tz_string = mw.text.trim (os.date (&amp;#039;%l:%M %p, %B %e, %Y&amp;#039;, timestamp));	-- mdy (legacy default)&lt;br /&gt;
		else&lt;br /&gt;
			tz_string = os.date (&amp;#039;%R, %B %e, %Y&amp;#039;, timestamp);					-- mdy (legacy default)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not is_set (tz[args[1]].article) then									-- if some but not all not all parts then emit error message&lt;br /&gt;
		return &amp;#039;&amp;lt;span style=&amp;quot;font-size:100%&amp;quot; class=&amp;quot;error&amp;quot;&amp;gt;{{time}} – incomplete definition for &amp;#039; .. args[1]:upper() .. &amp;#039; ([[Template:Time#Error messages|help]])&amp;lt;/span&amp;gt;&amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local refreshLink = mw.title.getCurrentTitle():fullUrl{action = &amp;#039;purge&amp;#039;}	-- create a refresh link&lt;br /&gt;
	return string.format (&amp;#039;%s [[%s|%s]] &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;font-size:80%%;&amp;quot;&amp;gt;[[%s refresh]]&amp;lt;/span&amp;gt;&amp;#039;, tz_string, tz[args[1]].article, tz_abbr, refreshLink);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>Mahan</name></author>
	</entry>
</feed>