]> git.mxchange.org Git - quix0rs-gnu-social.git/blob - extlib/Date/TimeZone.php
[ROUTES] Allow accept-header specification during router creation
[quix0rs-gnu-social.git] / extlib / Date / TimeZone.php
1 <?php
2 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
3
4
5 // {{{ Header
6
7 /**
8  * TimeZone representation class, along with time zone information data
9  *
10  * PHP versions 4 and 5
11  *
12  * LICENSE:
13  *
14  * Copyright (c) 1997-2007 Baba Buehler, Pierre-Alain Joye, C.A. Woodcock
15  * All rights reserved.
16  *
17  * Redistribution and use in source and binary forms, with or without
18  * modification, are permitted under the terms of the BSD License.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31  * POSSIBILITY OF SUCH DAMAGE.
32  *
33  * @category   Date and Time
34  * @package    Date
35  * @author     Baba Buehler <baba@babaz.com>
36  * @author     Pierre-Alain Joye <pajoye@php.net>
37  * @author     C.A. Woodcock <c01234@netcomuk.co.uk>
38  * @copyright  1997-2007 Baba Buehler, Pierre-Alain Joye, C.A. Woodcock
39  * @license    http://www.opensource.org/licenses/bsd-license.php
40  *             BSD License
41  * @version    CVS: $Id$
42  * @link       http://pear.php.net/package/Date
43  */
44
45
46 // }}}
47 // {{{ Class Date_TimeZone
48
49 /**
50  * TimeZone representation class, along with time zone information data
51  *
52  * The default timezone is set from the first valid timezone id found
53  * in one of the following places, in this order:
54  *   + global $_DATE_TIMEZONE_DEFAULT
55  *   + system environment variable PHP_TZ
56  *   + system environment variable TZ
57  *   + the result of date('T')
58  *
59  * If no valid timezone id is found, the default timezone is set to 'UTC'.
60  * You may also manually set the default timezone by passing a valid id to
61  * {@link Date_TimeZone::setDefault()}.
62  *
63  * This class includes time zone data (from zoneinfo) in the form of a
64  * global array, $_DATE_TIMEZONE_DATA.
65  *
66  * @category  Date and Time
67  * @package   Date
68  * @author    Baba Buehler <baba@babaz.com>
69  * @author    C.A. Woodcock <c01234@netcomuk.co.uk>
70  * @copyright 1997-2007 Baba Buehler, Pierre-Alain Joye, C.A. Woodcock
71  * @license   http://www.opensource.org/licenses/bsd-license.php
72  *            BSD License
73  * @version   Release: 1.5.0a1
74  * @link      http://pear.php.net/package/Date
75  */
76 class Date_TimeZone
77 {
78
79     // {{{ Properties
80
81     /**
82      * Unique time Zone ID of this time zone
83      *
84      * @var      string
85      * @access   private
86      * @since    Property available since Release 1.0
87      */
88     public $id;
89
90     /**
91      * Offset, in milliseconds, of this timezone
92      *
93      * @var      int
94      * @access   private
95      * @since    Property available since Release 1.0
96      */
97     public $offset;
98
99     /**
100      * Short name of this time zone (e.g. "CST")
101      *
102      * @var      string
103      * @access   private
104      * @since    Property available since Release 1.0
105      */
106     public $shortname;
107
108     /**
109      * DST short name of this timezone (e.g. 'BST')
110      *
111      * @var      string
112      * @access   private
113      * @since    Property available since Release 1.0
114      */
115     public $dstshortname;
116
117     /**
118      * Long name of this time zone (e.g. "Central Standard Time")
119      *
120      * N.B. this is not necessarily unique
121      *
122      * @since    1.0
123      * @access   private
124      * @since    Property available since Release 1.0
125      */
126     public $longname;
127
128     /**
129      * DST long name of this time zone (e.g. 'British Summer Time')
130      *
131      * @var      string
132      * @access   private
133      * @since    Property available since Release 1.0
134      */
135     public $dstlongname;
136
137     /**
138      * Whether this time zone observes daylight savings time
139      *
140      * @var      bool
141      * @access   private
142      * @since    Property available since Release 1.0
143      */
144     public $hasdst;
145
146     /**
147      * Additional offset of Summer time from the standard time of the
148      * time zone in milli-seconds
149      *
150      * The value is usually 3600000, i.e. one hour, and always positive
151      *
152      * @var      int
153      * @access   private
154      * @since    Property available since Release 1.5.0
155      */
156     public $on_summertimeoffset;
157
158     /**
159      * Month no (1-12) in which Summer time starts (the clocks go forward)
160      *
161      * @var      int
162      * @access   private
163      * @since    Property available since Release 1.5.0
164      */
165     public $on_summertimestartmonth;
166
167     /**
168      * Definition of when Summer time starts in the specified month
169      *
170      * Can take one of the following forms:
171      *
172      *  5        the fifth of the month
173      *  lastSun  the last Sunday in the month
174      *  lastMon  the last Monday in the month
175      *  Sun>=8   first Sunday on or after the 8th
176      *  Sun<=25  last Sunday on or before the 25th
177      *
178      * @var      string
179      * @access   private
180      * @since    Property available since Release 1.5.0
181      */
182     public $os_summertimestartday;
183
184     /**
185      * Time in milli-seconds relative to midnight UTC when
186      * Summer time starts (the clocks go forward)
187      *
188      * @var      int
189      * @access   private
190      * @since    Property available since Release 1.5.0
191      */
192     public $on_summertimestarttime;
193
194     /**
195      * Month no (1-12) in which Summer time ends (the clocks go back)
196      *
197      * @var      int
198      * @access   private
199      * @since    Property available since Release 1.5.0
200      */
201     public $on_summertimeendmonth;
202
203     /**
204      * Definition of when Summer time ends in the specified month
205      *
206      * @var      string
207      * @access   private
208      * @see      Date_TimeZone::$os_summertimestartday
209      * @since    Property available since Release 1.5.0
210      */
211     public $os_summertimeendday;
212
213     /**
214      * Time in milli-seconds relative to midnight UTC when
215      * Summer time ends (the clocks go back)
216      *
217      * @var      int
218      * @access   private
219      * @since    Property available since Release 1.5.0
220      */
221     public $on_summertimeendtime;
222
223
224     // }}}
225     // {{{ Constructor
226
227     /**
228      * Constructor
229      *
230      * If the supplied ID is invalid, the created time zone is "UTC".
231      *
232      * A note about time zones of the form 'Etc/*' (quoted from the public
233      * domain 'tz' data-base (see {@link ftp://elsie.nci.nih.gov/pub/}
234      * [file 'etcetera']):
235      *
236      *  These entries are mostly present for historical reasons, so that
237      *  people in areas not otherwise covered by the tz files could use
238      *  a time zone that was right for their area.  These days, the
239      *  tz files cover almost all the inhabited world, and the only practical
240      *  need now for the entries that are not on UTC are for ships at sea
241      *  that cannot use POSIX TZ settings.
242      *
243      *  - <b>Etc/GMT</b>  (GMT)
244      *  - <b>Etc/UTC</b>  (UTC)
245      *  - <b>Etc/UCT</b>  (UCT)
246      *
247      *  The following link uses older naming conventions, but it belongs here.
248      *  We want this to work even on installations that omit the other older
249      *  names.
250      *
251      *  - <b>Etc/GMT</b>  (equivalent to GMT)
252      *
253      *  - <b>Etc/UTC</b>  (equivalent to Etc/Universal)
254      *  - <b>Etc/UTC</b>  (equivalent to Etc/Zulu)
255      *
256      *  - <b>Etc/GMT</b>  (equivalent to Etc/Greenwich)
257      *  - <b>Etc/GMT</b>  (equivalent to Etc/GMT-0)
258      *  - <b>Etc/GMT</b>  (equivalent to Etc/GMT+0)
259      *  - <b>Etc/GMT</b>  (equivalent to Etc/GMT0)
260      *
261      *  We use POSIX-style signs in the Zone names and the output abbreviations,
262      *  even though this is the opposite of what many people expect.
263      *  POSIX has positive signs west of Greenwich, but many people expect
264      *  positive signs east of Greenwich.  For example, TZ='Etc/GMT+4' uses
265      *  the abbreviation "GMT+4" and corresponds to 4 hours behind UTC
266      *  (i.e. west of Greenwich) even though many people would expect it to
267      *  mean 4 hours ahead of UTC (i.e. east of Greenwich).
268      *
269      *  In the draft 5 of POSIX 1003.1-200x, the angle bracket notation
270      *  (which is not yet supported by the tz code) allows for
271      *  TZ='<GMT-4>+4'; if you want time zone abbreviations conforming to
272      *  ISO 8601 you can use TZ='<-0400>+4'.  Thus the commonly-expected
273      *  offset is kept within the angle bracket (and is used for display)
274      *  while the POSIX sign is kept outside the angle bracket (and is used
275      *  for calculation).
276      *
277      *  Do not use a TZ setting like TZ='GMT+4', which is four hours behind
278      *  GMT but uses the completely misleading abbreviation "GMT".
279      *
280      *  Earlier incarnations of this package were not POSIX-compliant, and
281      *  we did not want things to change quietly if someone accustomed to the
282      *  old way uses the codes from previous versions so we moved the names
283      *  into the Etc subdirectory.
284      *
285      *  - <b>Etc/GMT-14</b>  (14 hours ahead of Greenwich)
286      *  - <b>Etc/GMT-13</b>  (13)
287      *  - <b>Etc/GMT-12</b>  (12)
288      *  - <b>Etc/GMT-11</b>  (11)
289      *  - <b>Etc/GMT-10</b>  (10)
290      *  - <b>Etc/GMT-9</b>   (9)
291      *  - <b>Etc/GMT-8</b>   (8)
292      *  - <b>Etc/GMT-7</b>   (7)
293      *  - <b>Etc/GMT-6</b>   (6)
294      *  - <b>Etc/GMT-5</b>   (5)
295      *  - <b>Etc/GMT-4</b>   (4)
296      *  - <b>Etc/GMT-3</b>   (3)
297      *  - <b>Etc/GMT-2</b>   (2)
298      *  - <b>Etc/GMT-1</b>   (1)
299      *  - <b>Etc/GMT+1</b>   (1 hour behind Greenwich)
300      *  - <b>Etc/GMT+2</b>   (2)
301      *  - <b>Etc/GMT+3</b>   (3)
302      *  - <b>Etc/GMT+4</b>   (4)
303      *  - <b>Etc/GMT+5</b>   (5)
304      *  - <b>Etc/GMT+6</b>   (6)
305      *  - <b>Etc/GMT+7</b>   (7)
306      *  - <b>Etc/GMT+8</b>   (8)
307      *  - <b>Etc/GMT+9</b>   (9)
308      *  - <b>Etc/GMT+10</b>  (10)
309      *  - <b>Etc/GMT+11</b>  (11)
310      *  - <b>Etc/GMT+12</b>  (12)
311      *
312      * @param string $ps_id the time zone ID
313      *
314      * @return   void
315      * @access   public
316      * @see      Date::setTZ(), Date::setTZByID(), Date_TimeZone::isValidID()
317      */
318     public function Date_TimeZone($ps_id)
319     {
320         $_DATE_TIMEZONE_DATA =& $GLOBALS['_DATE_TIMEZONE_DATA'];
321
322         if (isset($GLOBALS['_DATE_TIMEZONE_DATA'][$ps_id])) {
323             $this->id = $ps_id;
324
325             $this->shortname = $_DATE_TIMEZONE_DATA[$ps_id]['shortname'];
326             $this->longname = $_DATE_TIMEZONE_DATA[$ps_id]['longname'];
327             $this->offset = $_DATE_TIMEZONE_DATA[$ps_id]['offset'];
328             $this->dstshortname =
329                 array_key_exists(
330                     "dstshortname",
331                     $_DATE_TIMEZONE_DATA[$ps_id]
332                 ) ?
333                     $_DATE_TIMEZONE_DATA[$ps_id]['dstshortname'] :
334                     null;
335             if ($this->hasdst = !is_null($this->dstshortname)) {
336                 $this->dstlongname =
337                     array_key_exists(
338                         "dstlongname",
339                         $_DATE_TIMEZONE_DATA[$ps_id]
340                     ) ?
341                         $_DATE_TIMEZONE_DATA[$ps_id]['dstlongname'] :
342                         null;
343                 if (isset($_DATE_TIMEZONE_DATA[$ps_id]["summertimeoffset"])) {
344                     $this->on_summertimeoffset = $_DATE_TIMEZONE_DATA[$ps_id]["summertimeoffset"];
345                     $this->on_summertimestartmonth = $_DATE_TIMEZONE_DATA[$ps_id]["summertimestartmonth"];
346                     $this->os_summertimestartday = $_DATE_TIMEZONE_DATA[$ps_id]["summertimestartday"];
347                     $this->on_summertimestarttime = $_DATE_TIMEZONE_DATA[$ps_id]["summertimestarttime"];
348                     $this->on_summertimeendmonth = $_DATE_TIMEZONE_DATA[$ps_id]["summertimeendmonth"];
349                     $this->os_summertimeendday = $_DATE_TIMEZONE_DATA[$ps_id]["summertimeendday"];
350                     $this->on_summertimeendtime = $_DATE_TIMEZONE_DATA[$ps_id]["summertimeendtime"];
351                 } else {
352                     $this->on_summertimeoffset = null;
353                 }
354             }
355         } else {
356             $this->hasdst = false;
357
358             if (preg_match(
359                 '/^UTC([+\-])([0-9]{2,2}):?([0-5][0-9])$/',
360                 $ps_id,
361                 $ha_matches
362             )) {
363                 $this->id = $ps_id;
364                 $this->offset = ($ha_matches[1] .
365                         ($ha_matches[2] * 3600 +
366                             $ha_matches[3] * 60)) * 1000;
367
368                 if (!($hb_isutc = $this->offset == 0)) {
369                     $this->id = $ps_id;
370                     $this->shortname = "UTC" .
371                         $ha_matches[1] .
372                         ($ha_matches[3] == "00" ?
373                             ltrim($ha_matches[2], "0") :
374                             $ha_matches[2] . $ha_matches[3]);
375                     $this->longname = "UTC" .
376                         $ha_matches[1] .
377                         $ha_matches[2] .
378                         ":" .
379                         $ha_matches[3];
380                 }
381             } elseif (preg_match(
382                 '/^UTC([+\-])([0-9]{1,2})$/',
383                 $ps_id,
384                 $ha_matches
385             )) {
386                 $this->id = $ps_id;
387                 $this->offset = ($ha_matches[1] .
388                         ($ha_matches[2] * 3600)) * 1000;
389
390                 if (!($hb_isutc = $this->offset == 0)) {
391                     $this->shortname = "UTC" .
392                         $ha_matches[1] .
393                         ltrim($ha_matches[2], "0");
394                     $this->longname = "UTC" .
395                         $ha_matches[1] .
396                         sprintf("%02d", $ha_matches[2]) .
397                         ":00";
398                 }
399             } else {
400                 $this->id = "UTC";
401                 $hb_isutc = true;
402             }
403
404             if ($hb_isutc) {
405                 $this->shortname = $_DATE_TIMEZONE_DATA["UTC"]['shortname'];
406                 $this->longname = $_DATE_TIMEZONE_DATA["UTC"]['longname'];
407                 $this->offset = $_DATE_TIMEZONE_DATA["UTC"]['offset'];
408             }
409         }
410     }
411
412
413     // }}}
414     // {{{ getDefault()
415
416     /**
417      * Returns a TimeZone object representing the system default time zone
418      *
419      * The system default time zone is initialized during the loading of
420      * this file.
421      *
422      * @return   object     Date_TimeZone object of the default time zone
423      * @access   public
424      */
425     public function getDefault()
426     {
427         return new Date_TimeZone($GLOBALS['_DATE_TIMEZONE_DEFAULT']);
428     }
429
430
431     // }}}
432     // {{{ setDefault()
433
434     /**
435      * Sets the system default time zone to the time zone in $id
436      *
437      * @param string $id the time zone id to use
438      *
439      * @return   void
440      * @access   public
441      */
442     public function setDefault($id)
443     {
444         if (Date_TimeZone::isValidID($id)) {
445             $GLOBALS['_DATE_TIMEZONE_DEFAULT'] = $id;
446         } else {
447             return PEAR::raiseError("Invalid time zone ID '$id'");
448         }
449     }
450
451
452     // }}}
453     // {{{ isValidID()
454
455     /**
456      * Tests if given time zone ID (e.g. 'London/Europe') is valid and unique
457      *
458      * Checks if given ID is either represented in the $_DATE_TIMEZONE_DATA
459      * time zone data, or is a UTC offset in one of the following forms,
460      * i.e. an offset with no geographical or political base:
461      *
462      *  - <b>UTC[+/-][hh]:[mm]</b> - e.g. UTC+03:00
463      *  - <b>UTC[+/-][hh][mm]</b>  - e.g. UTC-0530
464      *  - <b>UTC[+/-][hh]</b>      - e.g. UTC+03
465      *  - <b>UTC[+/-][h]</b>       - e.g. UTC-1
466      *
467      * (the last is not an ISO 8601 standard but is the preferred form)
468      *
469      * N.B. these are not sanctioned by any ISO standard, but the form of
470      * the offset itself, i.e. the part after the characters 'UTC', is the
471      * ISO 8601 standard form for representing this part.
472      *
473      * The form '<b>[+/-][h]</b>' is not ISO conformant, but ISO 8601 only
474      * defines the form of the time zone offset of a particular time, that
475      * is, it actually defines the form '<b><time>UTC[+/-][hh]</b>', and
476      * its purview does not apparently cover the name of the time zone
477      * itself. For this there is no official international standard (or
478      * even a non- international standard).  The closest thing to a
479      * sanctioning body is the 'tz' database
480      * ({@link http://www.twinsun.com/tz/tz-link.htm})
481      * which is run by volunteers but which is heavily relied upon by
482      * various programming languages and the internet community.  However
483      * they mainly define geographical/political time zone names of the
484      * form 'London/Europe' because their main aim is to collate the time
485      * zone definitions which are set by individual countries/states, not
486      * to prescribe any standard.
487      *
488      * However it seems that the de facto standard to describe time zones
489      * as non-geographically/politically-based areas where the local time
490      * on all clocks reads the same seems to be the form '<b>UTC[+/-][h]</b>'
491      * for integral numbers of hours, and '<b>UTC[+/-][hh]:[mm]</b>'
492      * otherwise.
493      * (See {@link http://en.wikipedia.org/wiki/List_of_time_zones})
494      *
495      * N.B. 'GMT' is also commonly used instead of 'UTC', but 'UTC' seems
496      * to be technically preferred.  GMT-based IDs still exist in the 'tz
497      * data-base', but beware of POSIX-style offsets which are the opposite
498      * way round to what people normally expect.
499      *
500      * @param string $ps_id the time zone ID to test
501      *
502      * @return   bool       true if the supplied ID is valid
503      * @access   public
504      * @see      Date::setTZByID(), Date_TimeZone::Date_TimeZone()
505      */
506     public function isValidID($ps_id)
507     {
508         if (isset($GLOBALS['_DATE_TIMEZONE_DATA'][$ps_id])) {
509             return true;
510         } elseif (preg_match(
511             '/^UTC[+\-]([0-9]{2,2}:?[0-5][0-9]|[0-9]{1,2})$/',
512             $ps_id
513         )) {
514             return true;
515         } else {
516             return false;
517         }
518     }
519
520
521     // }}}
522     // {{{ isEqual()
523
524     /**
525      * Is this time zone equal to another
526      *
527      * Tests to see if this time zone is equal (ids match)
528      * to a given Date_TimeZone object.
529      *
530      * @param object $tz the Date_TimeZone object to test
531      *
532      * @return   bool       true if this time zone is equal to the supplied
533      *                       time zone
534      * @access   public
535      * @see      Date_TimeZone::isEquivalent()
536      */
537     public function isEqual($tz)
538     {
539         if (strcasecmp($this->id, $tz->id) == 0) {
540             return true;
541         } else {
542             return false;
543         }
544     }
545
546
547     // }}}
548     // {{{ isEquivalent()
549
550     /**
551      * Is this time zone equivalent to another
552      *
553      * Tests to see if this time zone is equivalent to a given time zone object.
554      * Equivalence in this context consists in the two time zones having:
555      *
556      *  - an equal offset from UTC in both standard and Summer time (if
557      *              the time zones observe Summer time)
558      *  - the same Summer time start and end rules, that is, the two time
559      *              zones must switch from standard time to Summer time,
560      *              and vice versa, on the same day and at the same time
561      *
562      * @param object $pm_tz the Date_TimeZone object to test, or a valid time
563      *                       zone ID
564      *
565      * @return   bool       true if this time zone is equivalent to the supplied
566      *                       time zone
567      * @access   public
568      * @see      Date_TimeZone::isEqual(), Date::inEquivalentTimeZones()
569      */
570     public function isEquivalent($pm_tz)
571     {
572         if (is_a($pm_tz, "Date_TimeZone")) {
573             if ($pm_tz->getID() == $this->id) {
574                 return true;
575             }
576         } else {
577             if (!Date_TimeZone::isValidID($pm_tz)) {
578                 return PEAR::raiseError(
579                     "Invalid time zone ID '$pm_tz'",
580                     DATE_ERROR_INVALIDTIMEZONE
581                 );
582             }
583             if ($pm_tz == $this->id) {
584                 return true;
585             }
586
587             $pm_tz = new Date_TimeZone($pm_tz);
588         }
589
590         if ($this->getRawOffset() == $pm_tz->getRawOffset() &&
591             $this->hasDaylightTime() == $pm_tz->hasDaylightTime() &&
592             $this->getDSTSavings() == $pm_tz->getDSTSavings() &&
593             $this->getSummerTimeStartMonth() == $pm_tz->getSummerTimeStartMonth() &&
594             $this->getSummerTimeStartDay() == $pm_tz->getSummerTimeStartDay() &&
595             $this->getSummerTimeStartTime() == $pm_tz->getSummerTimeStartTime() &&
596             $this->getSummerTimeEndMonth() == $pm_tz->getSummerTimeEndMonth() &&
597             $this->getSummerTimeEndDay() == $pm_tz->getSummerTimeEndDay() &&
598             $this->getSummerTimeEndTime() == $pm_tz->getSummerTimeEndTime()
599         ) {
600             return true;
601         } else {
602             return false;
603         }
604     }
605
606
607     // }}}
608     // {{{ hasDaylightTime()
609
610     /**
611      * Returns true if this zone observes daylight savings time
612      *
613      * @return   bool       true if this time zone has DST
614      * @access   public
615      */
616     public function hasDaylightTime()
617     {
618         return $this->hasdst;
619     }
620
621
622     // }}}
623     // {{{ getSummerTimeLimitDay()
624
625     /**
626      * Returns day on which Summer time starts or ends for given year
627      *
628      * The limit (start or end) code can take the following forms:
629      *
630      *  - <b>5</b>       -       the fifth of the month
631      *  - <b>lastSun</b> -       the last Sunday in the month
632      *  - <b>lastMon</b> -       the last Monday in the month
633      *  - <b>Sun>=8</b>  -       first Sunday on or after the 8th
634      *  - <b>Sun<=25</b> -       last Sunday on or before the 25th
635      *
636      * @param string $ps_summertimelimitcode code which specifies Summer time
637      *                                        limit day
638      * @param int $pn_month start or end month
639      * @param int $pn_year year for which to calculate Summer
640      *                                        time limit day
641      *
642      * @return   int
643      * @access   private
644      * @see      Date_TimeZone::getSummerTimeStartDay()
645      * @since    Method available since Release 1.5.0
646      */
647     public function getSummerTimeLimitDay($ps_summertimelimitcode, $pn_month, $pn_year)
648     {
649         if (preg_match('/^[0-9]+$/', $ps_summertimelimitcode)) {
650             $hn_day = $ps_summertimelimitcode;
651         } else {
652             if (!isset($ha_daysofweek)) {
653                 static $ha_daysofweek = array("Sun" => 0,
654                     "Mon" => 1,
655                     "Tue" => 2,
656                     "Wed" => 3,
657                     "Thu" => 4,
658                     "Fri" => 5,
659                     "Sat" => 6);
660             }
661
662             if (preg_match(
663                 '/^last(Sun|Mon|Tue|Wed|Thu|Fri|Sat)$/',
664                 $ps_summertimelimitcode,
665                 $ha_matches
666             )) {
667                 list($hn_nmyear, $hn_nextmonth, $hn_nmday) =
668                     explode(" ", Date_Calc::beginOfMonthBySpan(
669                         1,
670                         $pn_month,
671                         $pn_year,
672                         "%Y %m %d"
673                     ));
674                 list($hn_year, $hn_month, $hn_day) =
675                     explode(
676                         " ",
677                         Date_Calc::prevDayOfWeek(
678                             $ha_daysofweek[$ha_matches[1]],
679                             $hn_nmday,
680                             $hn_nextmonth,
681                             $hn_nmyear,
682                             "%Y %m %d",
683                             false
684                         )
685                     ); // not including
686                 // this day
687
688                 if ($hn_month != $pn_month) {
689                     // This code happen legitimately if the calendar jumped some days
690                     // e.g. in a calendar switch, or the limit day is badly defined:
691                     //
692                     $hn_day = Date_Calc::getFirstDayOfMonth($pn_month, $pn_year);
693                 }
694             } elseif (preg_match(
695                 '/^(Sun|Mon|Tue|Wed|Thu|Fri|Sat)([><]=)([0-9]+)$/',
696                 $ps_summertimelimitcode,
697                 $ha_matches
698             )) {
699                 if ($ha_matches[2] == "<=") {
700                     list($hn_year, $hn_month, $hn_day) =
701                         explode(
702                             " ",
703                             Date_Calc::prevDayOfWeek(
704                                 $ha_daysofweek[$ha_matches[1]],
705                                 $ha_matches[3],
706                                 $pn_month,
707                                 $pn_year,
708                                 "%Y %m %d",
709                                 true
710                             )
711                         ); // including
712                     // this day
713
714                     if ($hn_month != $pn_month) {
715                         $hn_day = Date_Calc::getFirstDayOfMonth($pn_month, $pn_year);
716                     }
717                 } else {
718                     list($hn_year, $hn_month, $hn_day) =
719                         explode(
720                             " ",
721                             Date_Calc::nextDayOfWeek(
722                                 $ha_daysofweek[$ha_matches[1]],
723                                 $ha_matches[3],
724                                 $pn_month,
725                                 $pn_year,
726                                 "%Y %m %d",
727                                 true
728                             )
729                         ); // including
730                     // this day
731
732                     if ($hn_month != $pn_month) {
733                         $hn_day = Date_Calc::daysInMonth($pn_month, $pn_year);
734                     }
735                 }
736             }
737         }
738
739         return $hn_day;
740     }
741
742
743     // }}}
744     // {{{ inDaylightTime()
745
746     /**
747      * Returns whether the given date/time is in DST for this time zone
748      *
749      * Works for all years, positive and negative.  Possible problems
750      * are that when the clocks go forward, there is an invalid hour
751      * which is skipped.  If a time in this hour is specified, this
752      * function returns an error.  When the clocks go back, there is an
753      * hour which is repeated, that is, the hour is gone through twice -
754      * once in Summer time and once in standard time.  If this time
755      * is specified, then this function returns '$pb_repeatedhourdefault',
756      * because there is no way of knowing which is correct, and
757      * both possibilities are equally likely.
758      *
759      * Also bear in mind that the clocks go forward at the instant of
760      * the hour specified in the time-zone array below, and if this
761      * exact hour is specified then the clocks have actually changed,
762      * and this function reflects this.
763      *
764      * @param object $pm_date Date object to test or array of
765      *                                        day, month, year, seconds past
766      *                                        midnight
767      * @param bool $pb_repeatedhourdefault value to return if repeated hour is
768      *                                        specified (defaults to false)
769      *
770      * @return   bool       true if this date is in Summer time for this time
771      *                       zone
772      * @access   public
773      * @see      Date_TimeZone::inDaylightTimeStandard()
774      */
775     public function inDaylightTime($pm_date, $pb_repeatedhourdefault = false)
776     {
777         if (!$this->hasdst) {
778             return false;
779         }
780
781         if (is_a($pm_date, "Date")) {
782             $hn_day = $pm_date->getDay();
783             $hn_month = $pm_date->getMonth();
784             $hn_year = $pm_date->getYear();
785             $hn_seconds = $pm_date->getSecondsPastMidnight();
786         } else {
787             $hn_day = $pm_date[0];
788             $hn_month = $pm_date[1];
789             $hn_year = $pm_date[2];
790             $hn_seconds = $pm_date[3];  // seconds past midnight
791         }
792
793         if (($this->on_summertimestartmonth < $this->on_summertimeendmonth &&
794                 $hn_month >= $this->on_summertimestartmonth &&
795                 $hn_month <= $this->on_summertimeendmonth) ||
796             ($this->on_summertimestartmonth > $this->on_summertimeendmonth &&
797                 $hn_month >= $this->on_summertimestartmonth &&
798                 $hn_month <= $this->on_summertimeendmonth)
799         ) {
800             if ($hn_month == $this->on_summertimestartmonth) {
801                 $hn_startday =
802                     $this->getSummerTimeLimitDay(
803                         $this->os_summertimestartday,
804                         $this->on_summertimestartmonth,
805                         $hn_year
806                     );
807
808                 if ($hn_day < $hn_startday) {
809                     return false;
810                 } elseif ($hn_day > $hn_startday) {
811                     return true;
812                 } elseif (($hn_gmt = $hn_seconds * 1000 - $this->offset) -
813                     $this->on_summertimeoffset >=
814                     $this->on_summertimestarttime) {
815                     return true;
816                 } elseif (($hn_gmt = $hn_seconds * 1000 - $this->offset) >=
817                     $this->on_summertimestarttime) {
818                     return PEAR::raiseError(
819                         "Invalid time specified for date '" .
820                         Date_Calc::dateFormat(
821                             $hn_day,
822                             $hn_month,
823                             $hn_year,
824                             "%Y-%m-%d"
825                         ) .
826                         "'",
827                         DATE_ERROR_INVALIDTIME
828                     );
829                 } else {
830                     return false;
831                 }
832             } elseif ($hn_month == $this->on_summertimeendmonth) {
833                 $hn_endday =
834                     $this->getSummerTimeLimitDay(
835                         $this->os_summertimeendday,
836                         $this->on_summertimeendmonth,
837                         $hn_year
838                     );
839
840                 if ($hn_day < $hn_endday) {
841                     return true;
842                 } elseif ($hn_day > $hn_endday) {
843                     return false;
844                 } elseif (($hn_gmt = $hn_seconds * 1000 - $this->offset) -
845                     $this->on_summertimeoffset >=
846                     $this->on_summertimeendtime) {
847                     return false;
848                 } elseif ($hn_gmt >= $this->on_summertimeendtime) {
849                     // There is a 50:50 chance that it's Summer time, but there
850                     // is no way of knowing (the hour is repeated), so return
851                     // default:
852                     //
853                     return $pb_repeatedhourdefault;
854                 } else {
855                     return true;
856                 }
857             }
858
859             return true;
860         }
861
862         return false;
863     }
864
865
866     // }}}
867     // {{{ inDaylightTimeStandard()
868
869     /**
870      * Returns whether the given date/time in local standard time is
871      * in Summer time
872      *
873      * For example, if the clocks go forward at 1.00 standard time,
874      * then if the specified date/time is at 1.00, the function will
875      * return true, although the correct local time will actually
876      * be 2.00.
877      *
878      * This function is reliable for all dates and times, unlike the
879      * related function '{@link Date_TimeZone::inDaylightTime()}',
880      * which will fail if passed
881      * an invalid time (the skipped hour) and will be wrong half the
882      * time if passed an ambiguous time (the repeated hour).
883      *
884      * @param object $pm_date Date object to test or array of day, month, year,
885      *                         seconds past midnight
886      *
887      * @return   bool       true if this date is in Summer time for this time
888      *                       zone
889      * @access   public
890      * @see      Date_TimeZone::inDaylightTime()
891      * @since    Method available since Release 1.5.0
892      */
893     public function inDaylightTimeStandard($pm_date)
894     {
895         if (!$this->hasdst) {
896             return false;
897         }
898
899         if (is_a($pm_date, "Date")) {
900             $hn_day = $pm_date->getDay();
901             $hn_month = $pm_date->getMonth();
902             $hn_year = $pm_date->getYear();
903             $hn_seconds = $pm_date->getSecondsPastMidnight();
904         } else {
905             $hn_day = $pm_date[0];
906             $hn_month = $pm_date[1];
907             $hn_year = $pm_date[2];
908             $hn_seconds = $pm_date[3];
909         }
910
911         if (($this->on_summertimestartmonth < $this->on_summertimeendmonth &&
912                 $hn_month >= $this->on_summertimestartmonth &&
913                 $hn_month <= $this->on_summertimeendmonth) ||
914             ($this->on_summertimestartmonth > $this->on_summertimeendmonth &&
915                 $hn_month >= $this->on_summertimestartmonth &&
916                 $hn_month <= $this->on_summertimeendmonth)
917         ) {
918             if ($hn_month == $this->on_summertimestartmonth) {
919                 $hn_startday =
920                     $this->getSummerTimeLimitDay(
921                         $this->os_summertimestartday,
922                         $this->on_summertimestartmonth,
923                         $hn_year
924                     );
925
926                 if ($hn_day < $hn_startday) {
927                     return false;
928                 } elseif ($hn_day > $hn_startday) {
929                     return true;
930                 } elseif ($hn_seconds * 1000 - $this->offset >=
931                     $this->on_summertimestarttime) {
932                     return true;
933                 } else {
934                     return false;
935                 }
936             } elseif ($hn_month == $this->on_summertimeendmonth) {
937                 $hn_endday =
938                     $this->getSummerTimeLimitDay(
939                         $this->os_summertimeendday,
940                         $this->on_summertimeendmonth,
941                         $hn_year
942                     );
943
944                 if ($hn_day < $hn_endday) {
945                     return true;
946                 } elseif ($hn_day > $hn_endday) {
947                     return false;
948                 } elseif ($hn_seconds * 1000 - $this->offset >=
949                     $this->on_summertimeendtime) {
950                     return false;
951                 } else {
952                     return true;
953                 }
954             }
955
956             return true;
957         }
958
959         return false;
960     }
961
962
963     // }}}
964     // {{{ getDSTSavings()
965
966     /**
967      * Get the DST offset for this time zone
968      *
969      * Returns the DST offset of this time zone, in milliseconds,
970      * if the zone observes DST, zero otherwise.  If the offset is not
971      * known, the function returns one hour.
972      *
973      * @return   int        the DST offset, in milliseconds or nought if the
974      *                       zone does not observe DST
975      * @access   public
976      */
977     public function getDSTSavings()
978     {
979         if ($this->hasdst) {
980             // If offset is not specified, guess one hour.  (This is almost
981             // always correct anyway).  This cannot be improved upon, because
982             // where it is unset, the offset is either unknowable because the
983             // time-zone covers more than one political area (which may have
984             // different Summer time policies), or they might all have the
985             // same policy, but there is no way to automatically maintain
986             // this data at the moment, and manually it is simply not worth
987             // the bother.  If a user wants this functionality and refuses
988             // to use the standard time-zone IDs, then he can always update
989             // the array himself.
990             //
991             return isset($this->on_summertimeoffset) ?
992                 $this->on_summertimeoffset :
993                 3600000;
994         } else {
995             return 0;
996         }
997     }
998
999
1000     // }}}
1001     // {{{ getRawOffset()
1002
1003     /**
1004      * Returns the raw (non-DST-corrected) offset from UTC/GMT for this time
1005      * zone
1006      *
1007      * @return   int        the offset, in milliseconds
1008      * @access   public
1009      * @see      Date_TimeZone::getOffset()
1010      */
1011     public function getRawOffset()
1012     {
1013         return $this->offset;
1014     }
1015
1016
1017     // }}}
1018     // {{{ getOffset()
1019
1020     /**
1021      * Returns the DST-corrected offset from UTC for the given date
1022      *
1023      * Gets the offset to UTC for a given date/time, taking into
1024      * account daylight savings time, if the time zone observes it and if
1025      * it is in effect.
1026      *
1027      * N.B. that the offset is calculated historically
1028      * and in the future according to the current Summer time rules,
1029      * and so this function is proleptically correct, but not necessarily
1030      * historically correct.  (Although if you want to be correct about
1031      * times in the distant past, this class is probably not for you
1032      * because the whole notion of time zones does not apply, and
1033      * historically there are so many time zone changes, Summer time
1034      * rule changes, name changes, calendar changes, that calculating
1035      * this sort of information is beyond the scope of this package
1036      * altogether.)
1037      *
1038      * @param mixed $pm_insummertime a boolean specifying whether or not the
1039      *                                date is in Summer time, or,
1040      *                               a Date object to test for this condition
1041      *
1042      * @return   int        the corrected offset to UTC in milliseconds
1043      * @access   public
1044      * @see      Date_TimeZone::getRawOffset(), Date::getTZOffset()
1045      */
1046     public function getOffset($pm_insummertime)
1047     {
1048         if ($this->hasdst) {
1049             if (is_a($pm_insummertime, "Date")) {
1050                 $hb_insummertime = $pm_insummertime->inDaylightTime();
1051                 if (PEAR::isError($hb_insummertime)) {
1052                     return $hb_insummertime;
1053                 }
1054             } else {
1055                 $hb_insummertime = $pm_insummertime;
1056             }
1057
1058             if ($hb_insummertime) {
1059                 return $this->offset + $this->getDSTSavings();
1060             }
1061         }
1062
1063         return $this->offset;
1064     }
1065
1066
1067     // }}}
1068     // {{{ getAvailableIDs()
1069
1070     /**
1071      * Returns the list of valid time zone id strings
1072      *
1073      * @return   array      an array of strings with the valid time zone IDs
1074      * @access   public
1075      */
1076     public function getAvailableIDs()
1077     {
1078         return array_keys($GLOBALS['_DATE_TIMEZONE_DATA']);
1079     }
1080
1081
1082     // }}}
1083     // {{{ getID()
1084
1085     /**
1086      * Returns the time zone id for this time zone, e.g. "America/Chicago"
1087      *
1088      * @return   string     the time zone ID
1089      * @access   public
1090      */
1091     public function getID()
1092     {
1093         return $this->id;
1094     }
1095
1096
1097     // }}}
1098     // {{{ getLongName()
1099
1100     /**
1101      * Returns the long name for this time zone
1102      *
1103      * Long form of time zone name, e.g. 'Greenwich Mean Time'. Additionally
1104      * a Date object can be passed in which case the Summer time name will
1105      * be returned instead if the date falls in Summer time, e.g. 'British
1106      * Summer Time', or a Boolean can be passed which explicitly specifies
1107      * whether the date is in Summer time.
1108      *
1109      * N.B. this is not a unique identifier - for this purpose use the
1110      * time zone ID.
1111      *
1112      * @param mixed $pm_insummertime a boolean specifying whether or not the
1113      *                                date is in Summer time, or,
1114      *                               a Date object to test for this condition
1115      *
1116      * @return   string     the long name
1117      * @access   public
1118      * @see      Date_TimeZone::getShortName(), Date_TimeZone::getDSTLongName(),
1119      *            Date::getTZLongName()
1120      */
1121     public function getLongName($pm_insummertime = false)
1122     {
1123         if ($this->hasdst) {
1124             if (is_a($pm_insummertime, "Date")) {
1125                 $hb_insummertime = $pm_insummertime->inDaylightTime();
1126                 if (PEAR::isError($hb_insummertime)) {
1127                     return $hb_insummertime;
1128                 }
1129             } else {
1130                 $hb_insummertime = $pm_insummertime;
1131             }
1132
1133             if ($hb_insummertime) {
1134                 return $this->dstlongname;
1135             }
1136         }
1137
1138         return $this->longname;
1139     }
1140
1141
1142     // }}}
1143     // {{{ getShortName()
1144
1145     /**
1146      * Returns the short name for this time zone
1147      *
1148      * Returns abbreviated form of time zone name, e.g. 'GMT'. Additionally
1149      * a Date object can be passed in which case the Summer time name will
1150      * be returned instead if the date falls in Summer time, e.g. 'BST'.
1151      *
1152      * N.B. this is not a unique identifier - for this purpose use the
1153      * time zone ID.
1154      *
1155      * @param mixed $pm_insummertime a boolean specifying whether or not the
1156      *                                date is in Summer time, or,
1157      *                               a Date object to test for this condition
1158      *
1159      * @return   string     the short name
1160      * @access   public
1161      * @see      Date_TimeZone::getLongName(), Date_TimeZone::getDSTShortName(),
1162      *            Date::getTZShortName()
1163      */
1164     public function getShortName($pm_insummertime = false)
1165     {
1166         if ($this->hasdst) {
1167             if (is_a($pm_insummertime, "Date")) {
1168                 $hb_insummertime = $pm_insummertime->inDaylightTime();
1169                 if (PEAR::isError($hb_insummertime)) {
1170                     return $hb_insummertime;
1171                 }
1172             } else {
1173                 $hb_insummertime = $pm_insummertime;
1174             }
1175
1176             if ($hb_insummertime) {
1177                 return $this->dstshortname;
1178             }
1179         }
1180
1181         return $this->shortname;
1182     }
1183
1184
1185     // }}}
1186     // {{{ getDSTLongName()
1187
1188     /**
1189      * Returns the DST long name for this time zone, e.g.
1190      * 'Central Daylight Time'
1191      *
1192      * @return   string     the daylight savings time long name
1193      * @access   public
1194      * @see      Date_TimeZone::getDSTShortName(), Date_TimeZone::getLongName()
1195      */
1196     public function getDSTLongName()
1197     {
1198         return $this->hasdst ? $this->dstlongname : $this->longname;
1199     }
1200
1201
1202     // }}}
1203     // {{{ getDSTShortName()
1204
1205     /**
1206      * Returns the DST short name for this time zone, e.g. 'CDT'
1207      *
1208      * @return   string     the daylight savings time short name
1209      * @access   public
1210      * @see      Date_TimeZone::getDSTLongName(), Date_TimeZone::getShortName()
1211      */
1212     public function getDSTShortName()
1213     {
1214         return $this->hasdst ? $this->dstshortname : $this->shortname;
1215     }
1216
1217
1218     // }}}
1219     // {{{ getSummerTimeStartMonth()
1220
1221     /**
1222      * Returns the month number in which Summer time starts
1223      *
1224      * @return   int        integer representing the month (1 to 12)
1225      * @access   public
1226      * @see      Date_TimeZone::getSummerTimeEndMonth(),
1227      *            Date_TimeZone::getSummerTimeStartTime(),
1228      *            Date_TimeZone::getSummerTimeStartDay()
1229      * @since    Method available since Release 1.5.0
1230      */
1231     public function getSummerTimeStartMonth()
1232     {
1233         return $this->hasdst ? $this->on_summertimestartmonth : null;
1234     }
1235
1236
1237     // }}}
1238     // {{{ getSummerTimeStartDay()
1239
1240     /**
1241      * Returns a code representing the day on which Summer time starts
1242      *
1243      * Returns a string in one of the following forms:
1244      *
1245      *  - <b>5</b>       - the fifth of the month
1246      *  - <b>lastSun</b> - the last Sunday in the month
1247      *  - <b>lastMon</b> - the last Monday in the month
1248      *  - <b>Sun>=8</b>  - first Sunday on or after the 8th
1249      *  - <b>Sun<=25</b> - last Sunday on or before the 25th
1250      *
1251      * @return   string
1252      * @access   public
1253      * @see      Date_TimeZone::getSummerTimeEndDay(),
1254      *            Date_TimeZone::getSummerTimeStartTime(),
1255      *            Date_TimeZone::getSummerTimeStartMonth(),
1256      *            Date_TimeZone::getSummerTimeLimitDay()
1257      * @since    Method available since Release 1.5.0
1258      */
1259     public function getSummerTimeStartDay()
1260     {
1261         return $this->hasdst ? $this->os_summertimestartday : null;
1262     }
1263
1264
1265     // }}}
1266     // {{{ getSummerTimeStartTime()
1267
1268     /**
1269      * Returns the time of day at which which Summer time starts
1270      *
1271      * The returned time is an offset, in milliseconds, from midnight UTC.  Note
1272      * that the offset can be negative, which represents the fact that the time
1273      * zone is East of Greenwich, and that when the clocks change locally, the
1274      * time in Greenwich is actually a time belonging to the previous day in
1275      * UTC.  This, obviously, is unhelpful if you want to know the local time
1276      * at which the clocks change, but it is of immense value for the purpose
1277      * of calculation.
1278      *
1279      * @return   int        integer representing the month (1 to 12)
1280      * @access   public
1281      * @see      Date_TimeZone::getSummerTimeEndTime(),
1282      *            Date_TimeZone::getSummerTimeStartDay(),
1283      *            Date_TimeZone::getSummerTimeStartMonth()
1284      * @since    Method available since Release 1.5.0
1285      */
1286     public function getSummerTimeStartTime()
1287     {
1288         return $this->hasdst ? $this->on_summertimestarttime : null;
1289     }
1290
1291
1292     // }}}
1293     // {{{ getSummerTimeEndMonth()
1294
1295     /**
1296      * Returns the month number in which Summer time ends
1297      *
1298      * @return   int        integer representing the month (1 to 12)
1299      * @access   public
1300      * @see      Date_TimeZone::getSummerTimeStartMonth(),
1301      *            Date_TimeZone::getSummerTimeEndTime(),
1302      *            Date_TimeZone::getSummerTimeEndDay()
1303      * @since    Method available since Release 1.5.0
1304      */
1305     public function getSummerTimeEndMonth()
1306     {
1307         return $this->hasdst ? $this->on_summertimeendmonth : null;
1308     }
1309
1310
1311     // }}}
1312     // {{{ getSummerTimeEndDay()
1313
1314     /**
1315      * Returns a code representing the day on which Summer time ends
1316      *
1317      * Returns a string in one of the following forms:
1318      *
1319      *  - <b>5</b>       - the fifth of the month
1320      *  - <b>lastSun</b> - the last Sunday in the month
1321      *  - <b>lastMon</b> - the last Monday in the month
1322      *  - <b>Sun>=8</b>  - first Sunday on or after the 8th
1323      *  - <b>Sun<=25</b> - last Sunday on or before the 25th
1324      *
1325      * @return   string
1326      * @access   public
1327      * @see      Date_TimeZone::getSummerTimeStartDay(),
1328      *            Date_TimeZone::getSummerTimeEndTime(),
1329      *            Date_TimeZone::getSummerTimeEndMonth(),
1330      *            Date_TimeZone::getSummerTimeLimitDay()
1331      * @since    Method available since Release 1.5.0
1332      */
1333     public function getSummerTimeEndDay()
1334     {
1335         return $this->hasdst ? $this->os_summertimeendday : null;
1336     }
1337
1338
1339     // }}}
1340     // {{{ getSummerTimeEndTime()
1341
1342     /**
1343      * Returns the time of day at which which Summer time ends
1344      *
1345      * @return   int        integer representing the month (1 to 12)
1346      * @access   public
1347      * @see      Date_TimeZone::getSummerTimeStartTime(),
1348      *            Date_TimeZone::getSummerTimeEndDay(),
1349      *            Date_TimeZone::getSummerTimeEndMonth()
1350      * @since    Method available since Release 1.5.0
1351      */
1352     public function getSummerTimeEndTime()
1353     {
1354         return $this->hasdst ? $this->on_summertimeendtime : null;
1355     }
1356
1357
1358     // }}}
1359 }
1360
1361 // }}}
1362
1363 /**
1364  * Time Zone Data (correct as of 15.iii.2007)
1365  *
1366  * N.B. offsets are in milliseconds
1367  *
1368  * @global array $GLOBALS ['_DATE_TIMEZONE_DATA']
1369  */
1370 $GLOBALS['_DATE_TIMEZONE_DATA'] = array(
1371     'Africa/Abidjan' => array(
1372         'offset' => 0,
1373         'shortname' => 'GMT',
1374         'dstshortname' => null,
1375         'longname' => 'Greenwich Mean Time'),
1376     'Africa/Accra' => array(
1377         'offset' => 0,
1378         'shortname' => 'GMT',
1379         'dstshortname' => null,
1380         'longname' => 'Greenwich Mean Time'),
1381     'Africa/Addis_Ababa' => array(
1382         'offset' => 10800000,
1383         'shortname' => 'EAT',
1384         'dstshortname' => null,
1385         'longname' => 'Eastern African Time'),
1386     'Africa/Algiers' => array(
1387         'offset' => 3600000,
1388         'shortname' => 'CET',
1389         'dstshortname' => null,
1390         'longname' => 'Central European Time'),
1391     'Africa/Asmara' => array(
1392         'offset' => 10800000,
1393         'shortname' => 'EAT',
1394         'dstshortname' => null,
1395         'longname' => 'Eastern African Time'),
1396     'Africa/Asmera' => array(
1397         'offset' => 10800000,
1398         'shortname' => 'EAT',
1399         'dstshortname' => null,
1400         'longname' => 'Eastern African Time'),
1401     'Africa/Bamako' => array(
1402         'offset' => 0,
1403         'shortname' => 'GMT',
1404         'dstshortname' => null,
1405         'longname' => 'Greenwich Mean Time'),
1406     'Africa/Bangui' => array(
1407         'offset' => 3600000,
1408         'shortname' => 'WAT',
1409         'dstshortname' => null,
1410         'longname' => 'Western African Time'),
1411     'Africa/Banjul' => array(
1412         'offset' => 0,
1413         'shortname' => 'GMT',
1414         'dstshortname' => null,
1415         'longname' => 'Greenwich Mean Time'),
1416     'Africa/Bissau' => array(
1417         'offset' => 0,
1418         'shortname' => 'GMT',
1419         'dstshortname' => null,
1420         'longname' => 'Greenwich Mean Time'),
1421     'Africa/Blantyre' => array(
1422         'offset' => 7200000,
1423         'shortname' => 'CAT',
1424         'dstshortname' => null,
1425         'longname' => 'Central African Time'),
1426     'Africa/Brazzaville' => array(
1427         'offset' => 3600000,
1428         'shortname' => 'WAT',
1429         'dstshortname' => null,
1430         'longname' => 'Western African Time'),
1431     'Africa/Bujumbura' => array(
1432         'offset' => 7200000,
1433         'shortname' => 'CAT',
1434         'dstshortname' => null,
1435         'longname' => 'Central African Time'),
1436     'Africa/Cairo' => array(
1437         'offset' => 7200000,
1438         'shortname' => 'EET',
1439         'dstshortname' => 'EEST',
1440         'longname' => 'Eastern European Time',
1441         'dstlongname' => 'Eastern European Summer Time',
1442         'summertimeoffset' => 3600000,
1443         'summertimestartmonth' => 4,
1444         'summertimestartday' => 'lastFri',
1445         'summertimestarttime' => -7200000,
1446         'summertimeendmonth' => 8,
1447         'summertimeendday' => 'lastThu',
1448         'summertimeendtime' => 75600000),
1449     'Africa/Casablanca' => array(
1450         'offset' => 0,
1451         'shortname' => 'WET',
1452         'dstshortname' => null,
1453         'longname' => 'Western European Time'),
1454     'Africa/Ceuta' => array(
1455         'offset' => 3600000,
1456         'shortname' => 'CET',
1457         'dstshortname' => 'CEST',
1458         'longname' => 'Central European Time',
1459         'dstlongname' => 'Central European Summer Time',
1460         'summertimeoffset' => 3600000,
1461         'summertimestartmonth' => 3,
1462         'summertimestartday' => 'lastSun',
1463         'summertimestarttime' => 3600000,
1464         'summertimeendmonth' => 10,
1465         'summertimeendday' => 'lastSun',
1466         'summertimeendtime' => 3600000),
1467     'Africa/Conakry' => array(
1468         'offset' => 0,
1469         'shortname' => 'GMT',
1470         'dstshortname' => null,
1471         'longname' => 'Greenwich Mean Time'),
1472     'Africa/Dakar' => array(
1473         'offset' => 0,
1474         'shortname' => 'GMT',
1475         'dstshortname' => null,
1476         'longname' => 'Greenwich Mean Time'),
1477     'Africa/Dar_es_Salaam' => array(
1478         'offset' => 10800000,
1479         'shortname' => 'EAT',
1480         'dstshortname' => null,
1481         'longname' => 'Eastern African Time'),
1482     'Africa/Djibouti' => array(
1483         'offset' => 10800000,
1484         'shortname' => 'EAT',
1485         'dstshortname' => null,
1486         'longname' => 'Eastern African Time'),
1487     'Africa/Douala' => array(
1488         'offset' => 3600000,
1489         'shortname' => 'WAT',
1490         'dstshortname' => null,
1491         'longname' => 'Western African Time'),
1492     'Africa/El_Aaiun' => array(
1493         'offset' => 0,
1494         'shortname' => 'WET',
1495         'dstshortname' => null,
1496         'longname' => 'Western European Time'),
1497     'Africa/Freetown' => array(
1498         'offset' => 0,
1499         'shortname' => 'GMT',
1500         'dstshortname' => null,
1501         'longname' => 'Greenwich Mean Time'),
1502     'Africa/Gaborone' => array(
1503         'offset' => 7200000,
1504         'shortname' => 'CAT',
1505         'dstshortname' => null,
1506         'longname' => 'Central African Time'),
1507     'Africa/Harare' => array(
1508         'offset' => 7200000,
1509         'shortname' => 'CAT',
1510         'dstshortname' => null,
1511         'longname' => 'Central African Time'),
1512     'Africa/Johannesburg' => array(
1513         'offset' => 7200000,
1514         'shortname' => 'SAST',
1515         'dstshortname' => null,
1516         'longname' => 'South Africa Standard Time'),
1517     'Africa/Kampala' => array(
1518         'offset' => 10800000,
1519         'shortname' => 'EAT',
1520         'dstshortname' => null,
1521         'longname' => 'Eastern African Time'),
1522     'Africa/Khartoum' => array(
1523         'offset' => 10800000,
1524         'shortname' => 'EAT',
1525         'dstshortname' => null,
1526         'longname' => 'Eastern African Time'),
1527     'Africa/Kigali' => array(
1528         'offset' => 7200000,
1529         'shortname' => 'CAT',
1530         'dstshortname' => null,
1531         'longname' => 'Central African Time'),
1532     'Africa/Kinshasa' => array(
1533         'offset' => 3600000,
1534         'shortname' => 'WAT',
1535         'dstshortname' => null,
1536         'longname' => 'Western African Time'),
1537     'Africa/Lagos' => array(
1538         'offset' => 3600000,
1539         'shortname' => 'WAT',
1540         'dstshortname' => null,
1541         'longname' => 'Western African Time'),
1542     'Africa/Libreville' => array(
1543         'offset' => 3600000,
1544         'shortname' => 'WAT',
1545         'dstshortname' => null,
1546         'longname' => 'Western African Time'),
1547     'Africa/Lome' => array(
1548         'offset' => 0,
1549         'shortname' => 'GMT',
1550         'dstshortname' => null,
1551         'longname' => 'Greenwich Mean Time'),
1552     'Africa/Luanda' => array(
1553         'offset' => 3600000,
1554         'shortname' => 'WAT',
1555         'dstshortname' => null,
1556         'longname' => 'Western African Time'),
1557     'Africa/Lubumbashi' => array(
1558         'offset' => 7200000,
1559         'shortname' => 'CAT',
1560         'dstshortname' => null,
1561         'longname' => 'Central African Time'),
1562     'Africa/Lusaka' => array(
1563         'offset' => 7200000,
1564         'shortname' => 'CAT',
1565         'dstshortname' => null,
1566         'longname' => 'Central African Time'),
1567     'Africa/Malabo' => array(
1568         'offset' => 3600000,
1569         'shortname' => 'WAT',
1570         'dstshortname' => null,
1571         'longname' => 'Western African Time'),
1572     'Africa/Maputo' => array(
1573         'offset' => 7200000,
1574         'shortname' => 'CAT',
1575         'dstshortname' => null,
1576         'longname' => 'Central African Time'),
1577     'Africa/Maseru' => array(
1578         'offset' => 7200000,
1579         'shortname' => 'SAST',
1580         'dstshortname' => null,
1581         'longname' => 'South Africa Standard Time'),
1582     'Africa/Mbabane' => array(
1583         'offset' => 7200000,
1584         'shortname' => 'SAST',
1585         'dstshortname' => null,
1586         'longname' => 'South Africa Standard Time'),
1587     'Africa/Mogadishu' => array(
1588         'offset' => 10800000,
1589         'shortname' => 'EAT',
1590         'dstshortname' => null,
1591         'longname' => 'Eastern African Time'),
1592     'Africa/Monrovia' => array(
1593         'offset' => 0,
1594         'shortname' => 'GMT',
1595         'dstshortname' => null,
1596         'longname' => 'Greenwich Mean Time'),
1597     'Africa/Nairobi' => array(
1598         'offset' => 10800000,
1599         'shortname' => 'EAT',
1600         'dstshortname' => null,
1601         'longname' => 'Eastern African Time'),
1602     'Africa/Ndjamena' => array(
1603         'offset' => 3600000,
1604         'shortname' => 'WAT',
1605         'dstshortname' => null,
1606         'longname' => 'Western African Time'),
1607     'Africa/Niamey' => array(
1608         'offset' => 3600000,
1609         'shortname' => 'WAT',
1610         'dstshortname' => null,
1611         'longname' => 'Western African Time'),
1612     'Africa/Nouakchott' => array(
1613         'offset' => 0,
1614         'shortname' => 'GMT',
1615         'dstshortname' => null,
1616         'longname' => 'Greenwich Mean Time'),
1617     'Africa/Ouagadougou' => array(
1618         'offset' => 0,
1619         'shortname' => 'GMT',
1620         'dstshortname' => null,
1621         'longname' => 'Greenwich Mean Time'),
1622     'Africa/Porto-Novo' => array(
1623         'offset' => 3600000,
1624         'shortname' => 'WAT',
1625         'dstshortname' => null,
1626         'longname' => 'Western African Time'),
1627     'Africa/Sao_Tome' => array(
1628         'offset' => 0,
1629         'shortname' => 'GMT',
1630         'dstshortname' => null,
1631         'longname' => 'Greenwich Mean Time'),
1632     'Africa/Timbuktu' => array(
1633         'offset' => 0,
1634         'shortname' => 'GMT',
1635         'dstshortname' => null,
1636         'longname' => 'Greenwich Mean Time'),
1637     'Africa/Tripoli' => array(
1638         'offset' => 7200000,
1639         'shortname' => 'EET',
1640         'dstshortname' => null,
1641         'longname' => 'Eastern European Time'),
1642     'Africa/Tunis' => array(
1643         'offset' => 3600000,
1644         'shortname' => 'CET',
1645         'dstshortname' => 'CEST',
1646         'longname' => 'Central European Time',
1647         'summertimeoffset' => 3600000,
1648         'summertimestartmonth' => 3,
1649         'summertimestartday' => 'lastSun',
1650         'summertimestarttime' => 3600000,
1651         'summertimeendmonth' => 10,
1652         'summertimeendday' => 'lastSun',
1653         'summertimeendtime' => 3600000),
1654     'Africa/Windhoek' => array(
1655         'offset' => 3600000,
1656         'shortname' => 'WAT',
1657         'dstshortname' => 'WAST',
1658         'longname' => 'Western African Time',
1659         'dstlongname' => 'Western African Summer Time',
1660         'summertimeoffset' => 3600000,
1661         'summertimestartmonth' => 9,
1662         'summertimestartday' => 'Sun>=1',
1663         'summertimestarttime' => 3600000,
1664         'summertimeendmonth' => 4,
1665         'summertimeendday' => 'Sun>=1',
1666         'summertimeendtime' => 0),
1667     'America/Adak' => array(
1668         'offset' => -36000000,
1669         'shortname' => 'HAST',
1670         'dstshortname' => 'HADT',
1671         'longname' => 'Hawaii-Aleutian Standard Time',
1672         'dstlongname' => 'Hawaii-Aleutian Daylight Time',
1673         'summertimeoffset' => 3600000,
1674         'summertimestartmonth' => 3,
1675         'summertimestartday' => 'Sun>=8',
1676         'summertimestarttime' => 43200000,
1677         'summertimeendmonth' => 11,
1678         'summertimeendday' => 'Sun>=1',
1679         'summertimeendtime' => 39600000),
1680     'America/Anchorage' => array(
1681         'offset' => -32400000,
1682         'shortname' => 'AKST',
1683         'dstshortname' => 'AKDT',
1684         'longname' => 'Alaska Standard Time',
1685         'dstlongname' => 'Alaska Daylight Time',
1686         'summertimeoffset' => 3600000,
1687         'summertimestartmonth' => 3,
1688         'summertimestartday' => 'Sun>=8',
1689         'summertimestarttime' => 39600000,
1690         'summertimeendmonth' => 11,
1691         'summertimeendday' => 'Sun>=1',
1692         'summertimeendtime' => 36000000),
1693     'America/Anguilla' => array(
1694         'offset' => -14400000,
1695         'shortname' => 'AST',
1696         'dstshortname' => null,
1697         'longname' => 'Atlantic Standard Time'),
1698     'America/Antigua' => array(
1699         'offset' => -14400000,
1700         'shortname' => 'AST',
1701         'dstshortname' => null,
1702         'longname' => 'Atlantic Standard Time'),
1703     'America/Araguaina' => array(
1704         'offset' => -10800000,
1705         'shortname' => 'BRT',
1706         'dstshortname' => null,
1707         'longname' => 'Brazil Time',
1708         'dstlongname' => 'Brazil Summer Time'),
1709     'America/Argentina/Buenos_Aires' => array(
1710         'offset' => -10800000,
1711         'shortname' => 'ART',
1712         'dstshortname' => 'ARST',
1713         'longname' => 'Argentina Time',
1714         'dstlongname' => 'Argentina Summer Time',
1715         'summertimeoffset' => 3600000,
1716         'summertimestartmonth' => 10,
1717         'summertimestartday' => 'Sun>=1',
1718         'summertimestarttime' => 0,
1719         'summertimeendmonth' => 3,
1720         'summertimeendday' => 'Sun>=15',
1721         'summertimeendtime' => 0),
1722     'America/Argentina/Catamarca' => array(
1723         'offset' => -10800000,
1724         'shortname' => 'ART',
1725         'dstshortname' => 'ARST',
1726         'longname' => 'Argentina Time',
1727         'dstlongname' => 'Argentina Summer Time',
1728         'summertimeoffset' => 3600000,
1729         'summertimestartmonth' => 10,
1730         'summertimestartday' => 'Sun>=1',
1731         'summertimestarttime' => 0,
1732         'summertimeendmonth' => 3,
1733         'summertimeendday' => 'Sun>=15',
1734         'summertimeendtime' => 0),
1735     'America/Argentina/ComodRivadavia' => array(
1736         'offset' => -10800000,
1737         'shortname' => 'ART',
1738         'dstshortname' => 'ARST',
1739         'longname' => 'Argentina Time',
1740         'dstlongname' => 'Argentina Summer Time',
1741         'summertimeoffset' => 3600000,
1742         'summertimestartmonth' => 10,
1743         'summertimestartday' => 'Sun>=1',
1744         'summertimestarttime' => 0,
1745         'summertimeendmonth' => 3,
1746         'summertimeendday' => 'Sun>=15',
1747         'summertimeendtime' => 0),
1748     'America/Argentina/Cordoba' => array(
1749         'offset' => -10800000,
1750         'shortname' => 'ART',
1751         'dstshortname' => 'ARST',
1752         'longname' => 'Argentina Time',
1753         'dstlongname' => 'Argentina Summer Time',
1754         'summertimeoffset' => 3600000,
1755         'summertimestartmonth' => 10,
1756         'summertimestartday' => 'Sun>=1',
1757         'summertimestarttime' => 0,
1758         'summertimeendmonth' => 3,
1759         'summertimeendday' => 'Sun>=15',
1760         'summertimeendtime' => 0),
1761     'America/Argentina/Jujuy' => array(
1762         'offset' => -10800000,
1763         'shortname' => 'ART',
1764         'dstshortname' => 'ARST',
1765         'longname' => 'Argentina Time',
1766         'dstlongname' => 'Argentina Summer Time',
1767         'summertimeoffset' => 3600000,
1768         'summertimestartmonth' => 10,
1769         'summertimestartday' => 'Sun>=1',
1770         'summertimestarttime' => 0,
1771         'summertimeendmonth' => 3,
1772         'summertimeendday' => 'Sun>=15',
1773         'summertimeendtime' => 0),
1774     'America/Argentina/La_Rioja' => array(
1775         'offset' => -10800000,
1776         'shortname' => 'ART',
1777         'dstshortname' => 'ARST',
1778         'longname' => 'Argentina Time',
1779         'dstlongname' => 'Argentina Summer Time',
1780         'summertimeoffset' => 3600000,
1781         'summertimestartmonth' => 10,
1782         'summertimestartday' => 'Sun>=1',
1783         'summertimestarttime' => 0,
1784         'summertimeendmonth' => 3,
1785         'summertimeendday' => 'Sun>=15',
1786         'summertimeendtime' => 0),
1787     'America/Argentina/Mendoza' => array(
1788         'offset' => -10800000,
1789         'shortname' => 'ART',
1790         'dstshortname' => 'ARST',
1791         'longname' => 'Argentina Time',
1792         'dstlongname' => 'Argentina Summer Time',
1793         'summertimeoffset' => 3600000,
1794         'summertimestartmonth' => 10,
1795         'summertimestartday' => 'Sun>=1',
1796         'summertimestarttime' => 0,
1797         'summertimeendmonth' => 3,
1798         'summertimeendday' => 'Sun>=15',
1799         'summertimeendtime' => 0),
1800     'America/Argentina/Rio_Gallegos' => array(
1801         'offset' => -10800000,
1802         'shortname' => 'ART',
1803         'dstshortname' => 'ARST',
1804         'longname' => 'Argentina Time',
1805         'dstlongname' => 'Argentina Summer Time',
1806         'summertimeoffset' => 3600000,
1807         'summertimestartmonth' => 10,
1808         'summertimestartday' => 'Sun>=1',
1809         'summertimestarttime' => 0,
1810         'summertimeendmonth' => 3,
1811         'summertimeendday' => 'Sun>=15',
1812         'summertimeendtime' => 0),
1813     'America/Argentina/San_Juan' => array(
1814         'offset' => -10800000,
1815         'shortname' => 'ART',
1816         'dstshortname' => 'ARST',
1817         'longname' => 'Argentina Time',
1818         'dstlongname' => 'Argentina Summer Time',
1819         'summertimeoffset' => 3600000,
1820         'summertimestartmonth' => 10,
1821         'summertimestartday' => 'Sun>=1',
1822         'summertimestarttime' => 0,
1823         'summertimeendmonth' => 3,
1824         'summertimeendday' => 'Sun>=15',
1825         'summertimeendtime' => 0),
1826     'America/Argentina/Tucuman' => array(
1827         'offset' => -10800000,
1828         'shortname' => 'ART',
1829         'dstshortname' => 'ARST',
1830         'longname' => 'Argentina Time',
1831         'dstlongname' => 'Argentina Summer Time',
1832         'summertimeoffset' => 3600000,
1833         'summertimestartmonth' => 10,
1834         'summertimestartday' => 'Sun>=1',
1835         'summertimestarttime' => 0,
1836         'summertimeendmonth' => 3,
1837         'summertimeendday' => 'Sun>=15',
1838         'summertimeendtime' => 0),
1839     'America/Argentina/Ushuaia' => array(
1840         'offset' => -10800000,
1841         'shortname' => 'ART',
1842         'dstshortname' => 'ARST',
1843         'longname' => 'Argentina Time',
1844         'dstlongname' => 'Argentina Summer Time',
1845         'summertimeoffset' => 3600000,
1846         'summertimestartmonth' => 10,
1847         'summertimestartday' => 'Sun>=1',
1848         'summertimestarttime' => 0,
1849         'summertimeendmonth' => 3,
1850         'summertimeendday' => 'Sun>=15',
1851         'summertimeendtime' => 0),
1852     'America/Aruba' => array(
1853         'offset' => -14400000,
1854         'shortname' => 'AST',
1855         'dstshortname' => null,
1856         'longname' => 'Atlantic Standard Time'),
1857     'America/Asuncion' => array(
1858         'offset' => -14400000,
1859         'shortname' => 'PYT',
1860         'dstshortname' => 'PYST',
1861         'longname' => 'Paraguay Time',
1862         'dstlongname' => 'Paraguay Summer Time',
1863         'summertimeoffset' => 3600000,
1864         'summertimestartmonth' => 10,
1865         'summertimestartday' => 'Sun>=15',
1866         'summertimestarttime' => 14400000,
1867         'summertimeendmonth' => 3,
1868         'summertimeendday' => 'Sun>=8',
1869         'summertimeendtime' => 10800000),
1870     'America/Atikokan' => array(
1871         'offset' => -18000000,
1872         'shortname' => 'EST',
1873         'dstshortname' => null,
1874         'longname' => 'Eastern Standard Time'),
1875     'America/Atka' => array(
1876         'offset' => -36000000,
1877         'shortname' => 'HAST',
1878         'dstshortname' => 'HADT',
1879         'longname' => 'Hawaii-Aleutian Standard Time',
1880         'dstlongname' => 'Hawaii-Aleutian Daylight Time',
1881         'summertimeoffset' => 3600000,
1882         'summertimestartmonth' => 3,
1883         'summertimestartday' => 'Sun>=8',
1884         'summertimestarttime' => 43200000,
1885         'summertimeendmonth' => 11,
1886         'summertimeendday' => 'Sun>=1',
1887         'summertimeendtime' => 39600000),
1888     'America/Bahia' => array(
1889         'offset' => -10800000,
1890         'shortname' => 'BRT',
1891         'dstshortname' => null,
1892         'longname' => 'Brazil Eastern Time'),
1893     'America/Barbados' => array(
1894         'offset' => -14400000,
1895         'shortname' => 'AST',
1896         'dstshortname' => null,
1897         'longname' => 'Atlantic Standard Time'),
1898     'America/Belem' => array(
1899         'offset' => -10800000,
1900         'shortname' => 'BRT',
1901         'dstshortname' => null,
1902         'longname' => 'Brazil Time'),
1903     'America/Belize' => array(
1904         'offset' => -21600000,
1905         'shortname' => 'CST',
1906         'dstshortname' => null,
1907         'longname' => 'Central Standard Time'),
1908     'America/Blanc-Sablon' => array(
1909         'offset' => -14400000,
1910         'shortname' => 'AST',
1911         'dstshortname' => null,
1912         'longname' => 'Atlantic Standard Time'),
1913     'America/Boa_Vista' => array(
1914         'offset' => -14400000,
1915         'shortname' => 'AMT',
1916         'dstshortname' => null,
1917         'longname' => 'Amazon Standard Time'),
1918     'America/Bogota' => array(
1919         'offset' => -18000000,
1920         'shortname' => 'COT',
1921         'dstshortname' => null,
1922         'longname' => 'Colombia Time'),
1923     'America/Boise' => array(
1924         'offset' => -25200000,
1925         'shortname' => 'MST',
1926         'dstshortname' => 'MDT',
1927         'longname' => 'Mountain Standard Time',
1928         'dstlongname' => 'Mountain Daylight Time',
1929         'summertimeoffset' => 3600000,
1930         'summertimestartmonth' => 3,
1931         'summertimestartday' => 'Sun>=8',
1932         'summertimestarttime' => 32400000,
1933         'summertimeendmonth' => 11,
1934         'summertimeendday' => 'Sun>=1',
1935         'summertimeendtime' => 28800000),
1936     'America/Buenos_Aires' => array(
1937         'offset' => -10800000,
1938         'shortname' => 'ART',
1939         'dstshortname' => 'ARST',
1940         'longname' => 'Argentine Time',
1941         'summertimeoffset' => 3600000,
1942         'summertimestartmonth' => 10,
1943         'summertimestartday' => 'Sun>=1',
1944         'summertimestarttime' => 0,
1945         'summertimeendmonth' => 3,
1946         'summertimeendday' => 'Sun>=15',
1947         'summertimeendtime' => 0),
1948     'America/Cambridge_Bay' => array(
1949         'offset' => -25200000,
1950         'shortname' => 'MST',
1951         'dstshortname' => 'MDT',
1952         'longname' => 'Mountain Standard Time',
1953         'dstlongname' => 'Mountain Daylight Time',
1954         'summertimeoffset' => 3600000,
1955         'summertimestartmonth' => 3,
1956         'summertimestartday' => 'Sun>=8',
1957         'summertimestarttime' => 32400000,
1958         'summertimeendmonth' => 11,
1959         'summertimeendday' => 'Sun>=1',
1960         'summertimeendtime' => 28800000),
1961     'America/Campo_Grande' => array(
1962         'offset' => -14400000,
1963         'shortname' => 'AMT',
1964         'dstshortname' => 'AMST',
1965         'longname' => 'Amazon Standard Time',
1966         'dstlongname' => 'Amazon Summer Time',
1967         'summertimeoffset' => 3600000,
1968         'summertimestartmonth' => 10,
1969         'summertimestartday' => 'Sun>=8',
1970         'summertimestarttime' => 14400000,
1971         'summertimeendmonth' => 2,
1972         'summertimeendday' => 'Sun>=15',
1973         'summertimeendtime' => 10800000),
1974     'America/Cancun' => array(
1975         'offset' => -21600000,
1976         'shortname' => 'CST',
1977         'dstshortname' => 'CDT',
1978         'longname' => 'Central Standard Time',
1979         'dstlongname' => 'Central Daylight Time',
1980         'summertimeoffset' => 3600000,
1981         'summertimestartmonth' => 4,
1982         'summertimestartday' => 'Sun>=1',
1983         'summertimestarttime' => 28800000,
1984         'summertimeendmonth' => 10,
1985         'summertimeendday' => 'lastSun',
1986         'summertimeendtime' => 25200000),
1987     'America/Caracas' => array(
1988         'offset' => -16200000,
1989         'shortname' => 'VET',
1990         'dstshortname' => null,
1991         'longname' => 'Venezuela Time'),
1992     'America/Catamarca' => array(
1993         'offset' => -10800000,
1994         'shortname' => 'ART',
1995         'dstshortname' => 'ARST',
1996         'longname' => 'Argentine Time',
1997         'summertimeoffset' => 3600000,
1998         'summertimestartmonth' => 10,
1999         'summertimestartday' => 'Sun>=1',
2000         'summertimestarttime' => 0,
2001         'summertimeendmonth' => 3,
2002         'summertimeendday' => 'Sun>=15',
2003         'summertimeendtime' => 0),
2004     'America/Cayenne' => array(
2005         'offset' => -10800000,
2006         'shortname' => 'GFT',
2007         'dstshortname' => null,
2008         'longname' => 'French Guiana Time'),
2009     'America/Cayman' => array(
2010         'offset' => -18000000,
2011         'shortname' => 'EST',
2012         'dstshortname' => null,
2013         'longname' => 'Eastern Standard Time'),
2014     'America/Chicago' => array(
2015         'offset' => -21600000,
2016         'shortname' => 'CST',
2017         'dstshortname' => 'CDT',
2018         'longname' => 'Central Standard Time',
2019         'dstlongname' => 'Central Daylight Time',
2020         'summertimeoffset' => 3600000,
2021         'summertimestartmonth' => 3,
2022         'summertimestartday' => 'Sun>=8',
2023         'summertimestarttime' => 28800000,
2024         'summertimeendmonth' => 11,
2025         'summertimeendday' => 'Sun>=1',
2026         'summertimeendtime' => 25200000),
2027     'America/Chihuahua' => array(
2028         'offset' => -25200000,
2029         'shortname' => 'MST',
2030         'dstshortname' => 'MDT',
2031         'longname' => 'Mountain Standard Time',
2032         'dstlongname' => 'Mountain Daylight Time',
2033         'summertimeoffset' => 3600000,
2034         'summertimestartmonth' => 4,
2035         'summertimestartday' => 'Sun>=1',
2036         'summertimestarttime' => 32400000,
2037         'summertimeendmonth' => 10,
2038         'summertimeendday' => 'lastSun',
2039         'summertimeendtime' => 28800000),
2040     'America/Coral_Harbour' => array(
2041         'offset' => -18000000,
2042         'shortname' => 'EST',
2043         'dstshortname' => null,
2044         'longname' => 'Eastern Standard Time'),
2045     'America/Cordoba' => array(
2046         'offset' => -10800000,
2047         'shortname' => 'ART',
2048         'dstshortname' => 'ARST',
2049         'longname' => 'Argentine Time',
2050         'summertimeoffset' => 3600000,
2051         'summertimestartmonth' => 10,
2052         'summertimestartday' => 'Sun>=1',
2053         'summertimestarttime' => 0,
2054         'summertimeendmonth' => 3,
2055         'summertimeendday' => 'Sun>=15',
2056         'summertimeendtime' => 0),
2057     'America/Costa_Rica' => array(
2058         'offset' => -21600000,
2059         'shortname' => 'CST',
2060         'dstshortname' => null,
2061         'longname' => 'Central Standard Time'),
2062     'America/Cuiaba' => array(
2063         'offset' => -14400000,
2064         'shortname' => 'AMT',
2065         'dstshortname' => 'AMST',
2066         'longname' => 'Amazon Standard Time',
2067         'dstlongname' => 'Amazon Summer Time',
2068         'summertimeoffset' => 3600000,
2069         'summertimestartmonth' => 10,
2070         'summertimestartday' => 'Sun>=8',
2071         'summertimestarttime' => 14400000,
2072         'summertimeendmonth' => 2,
2073         'summertimeendday' => 'Sun>=15',
2074         'summertimeendtime' => 10800000),
2075     'America/Curacao' => array(
2076         'offset' => -14400000,
2077         'shortname' => 'AST',
2078         'dstshortname' => null,
2079         'longname' => 'Atlantic Standard Time'),
2080     'America/Danmarkshavn' => array(
2081         'offset' => 0,
2082         'shortname' => 'GMT',
2083         'dstshortname' => null,
2084         'longname' => 'Greenwich Mean Time'),
2085     'America/Dawson' => array(
2086         'offset' => -28800000,
2087         'shortname' => 'PST',
2088         'dstshortname' => 'PDT',
2089         'longname' => 'Pacific Standard Time',
2090         'dstlongname' => 'Pacific Daylight Time',
2091         'summertimeoffset' => 3600000,
2092         'summertimestartmonth' => 3,
2093         'summertimestartday' => 'Sun>=8',
2094         'summertimestarttime' => 36000000,
2095         'summertimeendmonth' => 11,
2096         'summertimeendday' => 'Sun>=1',
2097         'summertimeendtime' => 32400000),
2098     'America/Dawson_Creek' => array(
2099         'offset' => -25200000,
2100         'shortname' => 'MST',
2101         'dstshortname' => null,
2102         'longname' => 'Mountain Standard Time'),
2103     'America/Denver' => array(
2104         'offset' => -25200000,
2105         'shortname' => 'MST',
2106         'dstshortname' => 'MDT',
2107         'longname' => 'Mountain Standard Time',
2108         'dstlongname' => 'Mountain Daylight Time',
2109         'summertimeoffset' => 3600000,
2110         'summertimestartmonth' => 3,
2111         'summertimestartday' => 'Sun>=8',
2112         'summertimestarttime' => 32400000,
2113         'summertimeendmonth' => 11,
2114         'summertimeendday' => 'Sun>=1',
2115         'summertimeendtime' => 28800000),
2116     'America/Detroit' => array(
2117         'offset' => -18000000,
2118         'shortname' => 'EST',
2119         'dstshortname' => 'EDT',
2120         'longname' => 'Eastern Standard Time',
2121         'dstlongname' => 'Eastern Daylight Time',
2122         'summertimeoffset' => 3600000,
2123         'summertimestartmonth' => 3,
2124         'summertimestartday' => 'Sun>=8',
2125         'summertimestarttime' => 25200000,
2126         'summertimeendmonth' => 11,
2127         'summertimeendday' => 'Sun>=1',
2128         'summertimeendtime' => 21600000),
2129     'America/Dominica' => array(
2130         'offset' => -14400000,
2131         'shortname' => 'AST',
2132         'dstshortname' => null,
2133         'longname' => 'Atlantic Standard Time'),
2134     'America/Edmonton' => array(
2135         'offset' => -25200000,
2136         'shortname' => 'MST',
2137         'dstshortname' => 'MDT',
2138         'longname' => 'Mountain Standard Time',
2139         'dstlongname' => 'Mountain Daylight Time',
2140         'summertimeoffset' => 3600000,
2141         'summertimestartmonth' => 3,
2142         'summertimestartday' => 'Sun>=8',
2143         'summertimestarttime' => 32400000,
2144         'summertimeendmonth' => 11,
2145         'summertimeendday' => 'Sun>=1',
2146         'summertimeendtime' => 28800000),
2147     'America/Eirunepe' => array(
2148         'offset' => -18000000,
2149         'shortname' => 'ACT',
2150         'dstshortname' => null,
2151         'longname' => 'Acre Time'),
2152     'America/El_Salvador' => array(
2153         'offset' => -21600000,
2154         'shortname' => 'CST',
2155         'dstshortname' => null,
2156         'longname' => 'Central Standard Time'),
2157     'America/Ensenada' => array(
2158         'offset' => -28800000,
2159         'shortname' => 'PST',
2160         'dstshortname' => 'PDT',
2161         'longname' => 'Pacific Standard Time',
2162         'dstlongname' => 'Pacific Daylight Time',
2163         'summertimeoffset' => 3600000,
2164         'summertimestartmonth' => 4,
2165         'summertimestartday' => 'Sun>=1',
2166         'summertimestarttime' => 36000000,
2167         'summertimeendmonth' => 10,
2168         'summertimeendday' => 'lastSun',
2169         'summertimeendtime' => 32400000),
2170     'America/Fort_Wayne' => array(
2171         'offset' => -18000000,
2172         'shortname' => 'EST',
2173         'dstshortname' => 'EDT',
2174         'longname' => 'Eastern Standard Time',
2175         'summertimeoffset' => 3600000,
2176         'summertimestartmonth' => 3,
2177         'summertimestartday' => 'Sun>=8',
2178         'summertimestarttime' => 25200000,
2179         'summertimeendmonth' => 11,
2180         'summertimeendday' => 'Sun>=1',
2181         'summertimeendtime' => 21600000),
2182     'America/Fortaleza' => array(
2183         'offset' => -10800000,
2184         'shortname' => 'BRT',
2185         'dstshortname' => null,
2186         'longname' => 'Brazil Time',
2187         'dstlongname' => 'Brazil Summer Time'),
2188     'America/Glace_Bay' => array(
2189         'offset' => -14400000,
2190         'shortname' => 'AST',
2191         'dstshortname' => 'ADT',
2192         'longname' => 'Atlantic Standard Time',
2193         'dstlongname' => 'Atlantic Daylight Time',
2194         'summertimeoffset' => 3600000,
2195         'summertimestartmonth' => 3,
2196         'summertimestartday' => 'Sun>=8',
2197         'summertimestarttime' => 21600000,
2198         'summertimeendmonth' => 11,
2199         'summertimeendday' => 'Sun>=1',
2200         'summertimeendtime' => 18000000),
2201     'America/Godthab' => array(
2202         'offset' => -10800000,
2203         'shortname' => 'WGT',
2204         'dstshortname' => 'WGST',
2205         'longname' => 'Western Greenland Time',
2206         'dstlongname' => 'Western Greenland Summer Time',
2207         'summertimeoffset' => 3600000,
2208         'summertimestartmonth' => 3,
2209         'summertimestartday' => 'lastSun',
2210         'summertimestarttime' => 3600000,
2211         'summertimeendmonth' => 10,
2212         'summertimeendday' => 'lastSun',
2213         'summertimeendtime' => 3600000),
2214     'America/Goose_Bay' => array(
2215         'offset' => -14400000,
2216         'shortname' => 'AST',
2217         'dstshortname' => 'ADT',
2218         'longname' => 'Atlantic Standard Time',
2219         'dstlongname' => 'Atlantic Daylight Time',
2220         'summertimeoffset' => 3600000,
2221         'summertimestartmonth' => 3,
2222         'summertimestartday' => 'Sun>=8',
2223         'summertimestarttime' => 14460000,
2224         'summertimeendmonth' => 11,
2225         'summertimeendday' => 'Sun>=1',
2226         'summertimeendtime' => 10860000),
2227     'America/Grand_Turk' => array(
2228         'offset' => -18000000,
2229         'shortname' => 'EST',
2230         'dstshortname' => 'EDT',
2231         'longname' => 'Eastern Standard Time',
2232         'dstlongname' => 'Eastern Daylight Time',
2233         'summertimeoffset' => 3600000,
2234         'summertimestartmonth' => 3,
2235         'summertimestartday' => 'Sun>=8',
2236         'summertimestarttime' => 25200000,
2237         'summertimeendmonth' => 11,
2238         'summertimeendday' => 'Sun>=1',
2239         'summertimeendtime' => 21600000),
2240     'America/Grenada' => array(
2241         'offset' => -14400000,
2242         'shortname' => 'AST',
2243         'dstshortname' => null,
2244         'longname' => 'Atlantic Standard Time'),
2245     'America/Guadeloupe' => array(
2246         'offset' => -14400000,
2247         'shortname' => 'AST',
2248         'dstshortname' => null,
2249         'longname' => 'Atlantic Standard Time'),
2250     'America/Guatemala' => array(
2251         'offset' => -21600000,
2252         'shortname' => 'CST',
2253         'dstshortname' => null,
2254         'longname' => 'Central Standard Time'),
2255     'America/Guayaquil' => array(
2256         'offset' => -18000000,
2257         'shortname' => 'ECT',
2258         'dstshortname' => null,
2259         'longname' => 'Ecuador Time'),
2260     'America/Guyana' => array(
2261         'offset' => -14400000,
2262         'shortname' => 'GYT',
2263         'dstshortname' => null,
2264         'longname' => 'Guyana Time'),
2265     'America/Halifax' => array(
2266         'offset' => -14400000,
2267         'shortname' => 'AST',
2268         'dstshortname' => 'ADT',
2269         'longname' => 'Atlantic Standard Time',
2270         'dstlongname' => 'Atlantic Daylight Time',
2271         'summertimeoffset' => 3600000,
2272         'summertimestartmonth' => 3,
2273         'summertimestartday' => 'Sun>=8',
2274         'summertimestarttime' => 21600000,
2275         'summertimeendmonth' => 11,
2276         'summertimeendday' => 'Sun>=1',
2277         'summertimeendtime' => 18000000),
2278     'America/Havana' => array(
2279         'offset' => -18000000,
2280         'shortname' => 'CST',
2281         'dstshortname' => 'CDT',
2282         'longname' => 'Central Standard Time',
2283         'dstlongname' => 'Central Daylight Time',
2284         'summertimeoffset' => 3600000,
2285         'summertimestartmonth' => 3,
2286         'summertimestartday' => 'Sun>=8',
2287         'summertimestarttime' => 18000000,
2288         'summertimeendmonth' => 10,
2289         'summertimeendday' => 'lastSun',
2290         'summertimeendtime' => 18000000),
2291     'America/Hermosillo' => array(
2292         'offset' => -25200000,
2293         'shortname' => 'MST',
2294         'dstshortname' => null,
2295         'longname' => 'Mountain Standard Time'),
2296     'America/Indiana/Indianapolis' => array(
2297         'offset' => -18000000,
2298         'shortname' => 'EST',
2299         'dstshortname' => 'EDT',
2300         'longname' => 'Eastern Standard Time',
2301         'dstlongname' => 'Eastern Daylight Time',
2302         'summertimeoffset' => 3600000,
2303         'summertimestartmonth' => 3,
2304         'summertimestartday' => 'Sun>=8',
2305         'summertimestarttime' => 25200000,
2306         'summertimeendmonth' => 11,
2307         'summertimeendday' => 'Sun>=1',
2308         'summertimeendtime' => 21600000),
2309     'America/Indiana/Knox' => array(
2310         'offset' => -21600000,
2311         'shortname' => 'CST',
2312         'dstshortname' => 'CDT',
2313         'longname' => 'Central Standard Time',
2314         'dstlongname' => 'Central Daylight Time',
2315         'summertimeoffset' => 3600000,
2316         'summertimestartmonth' => 3,
2317         'summertimestartday' => 'Sun>=8',
2318         'summertimestarttime' => 28800000,
2319         'summertimeendmonth' => 11,
2320         'summertimeendday' => 'Sun>=1',
2321         'summertimeendtime' => 25200000),
2322     'America/Indiana/Marengo' => array(
2323         'offset' => -18000000,
2324         'shortname' => 'EST',
2325         'dstshortname' => 'EDT',
2326         'longname' => 'Eastern Standard Time',
2327         'dstlongname' => 'Eastern Daylight Time',
2328         'summertimeoffset' => 3600000,
2329         'summertimestartmonth' => 3,
2330         'summertimestartday' => 'Sun>=8',
2331         'summertimestarttime' => 25200000,
2332         'summertimeendmonth' => 11,
2333         'summertimeendday' => 'Sun>=1',
2334         'summertimeendtime' => 21600000),
2335     'America/Indiana/Petersburg' => array(
2336         'offset' => -18000000,
2337         'shortname' => 'EST',
2338         'dstshortname' => 'EDT',
2339         'longname' => 'Eastern Standard Time',
2340         'dstlongname' => 'Eastern Daylight Time',
2341         'summertimeoffset' => 3600000,
2342         'summertimestartmonth' => 3,
2343         'summertimestartday' => 'Sun>=8',
2344         'summertimestarttime' => 25200000,
2345         'summertimeendmonth' => 11,
2346         'summertimeendday' => 'Sun>=1',
2347         'summertimeendtime' => 21600000),
2348     'America/Indiana/Tell_City' => array(
2349         'offset' => -21600000,
2350         'shortname' => 'CST',
2351         'dstshortname' => 'CDT',
2352         'longname' => 'Central Standard Time',
2353         'dstlongname' => 'Central Daylight Time',
2354         'summertimeoffset' => 3600000,
2355         'summertimestartmonth' => 3,
2356         'summertimestartday' => 'Sun>=8',
2357         'summertimestarttime' => 28800000,
2358         'summertimeendmonth' => 11,
2359         'summertimeendday' => 'Sun>=1',
2360         'summertimeendtime' => 25200000),
2361     'America/Indiana/Vevay' => array(
2362         'offset' => -18000000,
2363         'shortname' => 'EST',
2364         'dstshortname' => 'EDT',
2365         'longname' => 'Eastern Standard Time',
2366         'dstlongname' => 'Eastern Daylight Time',
2367         'summertimeoffset' => 3600000,
2368         'summertimestartmonth' => 3,
2369         'summertimestartday' => 'Sun>=8',
2370         'summertimestarttime' => 25200000,
2371         'summertimeendmonth' => 11,
2372         'summertimeendday' => 'Sun>=1',
2373         'summertimeendtime' => 21600000),
2374     'America/Indiana/Vincennes' => array(
2375         'offset' => -18000000,
2376         'shortname' => 'EST',
2377         'dstshortname' => 'EDT',
2378         'longname' => 'Eastern Standard Time',
2379         'dstlongname' => 'Eastern Daylight Time',
2380         'summertimeoffset' => 3600000,
2381         'summertimestartmonth' => 3,
2382         'summertimestartday' => 'Sun>=8',
2383         'summertimestarttime' => 25200000,
2384         'summertimeendmonth' => 11,
2385         'summertimeendday' => 'Sun>=1',
2386         'summertimeendtime' => 21600000),
2387     'America/Indiana/Winamac' => array(
2388         'offset' => -18000000,
2389         'shortname' => 'EST',
2390         'dstshortname' => 'EDT',
2391         'longname' => 'Eastern Standard Time',
2392         'dstlongname' => 'Eastern Daylight Time',
2393         'summertimeoffset' => 3600000,
2394         'summertimestartmonth' => 3,
2395         'summertimestartday' => 'Sun>=8',
2396         'summertimestarttime' => 25200000,
2397         'summertimeendmonth' => 11,
2398         'summertimeendday' => 'Sun>=1',
2399         'summertimeendtime' => 21600000),
2400     'America/Indianapolis' => array(
2401         'offset' => -18000000,
2402         'shortname' => 'EST',
2403         'dstshortname' => 'EDT',
2404         'longname' => 'Eastern Standard Time',
2405         'summertimeoffset' => 3600000,
2406         'summertimestartmonth' => 3,
2407         'summertimestartday' => 'Sun>=8',
2408         'summertimestarttime' => 25200000,
2409         'summertimeendmonth' => 11,
2410         'summertimeendday' => 'Sun>=1',
2411         'summertimeendtime' => 21600000),
2412     'America/Inuvik' => array(
2413         'offset' => -25200000,
2414         'shortname' => 'MST',
2415         'dstshortname' => 'MDT',
2416         'longname' => 'Mountain Standard Time',
2417         'dstlongname' => 'Mountain Daylight Time',
2418         'summertimeoffset' => 3600000,
2419         'summertimestartmonth' => 3,
2420         'summertimestartday' => 'Sun>=8',
2421         'summertimestarttime' => 32400000,
2422         'summertimeendmonth' => 11,
2423         'summertimeendday' => 'Sun>=1',
2424         'summertimeendtime' => 28800000),
2425     'America/Iqaluit' => array(
2426         'offset' => -18000000,
2427         'shortname' => 'EST',
2428         'dstshortname' => 'EDT',
2429         'longname' => 'Eastern Standard Time',
2430         'dstlongname' => 'Eastern Daylight Time',
2431         'summertimeoffset' => 3600000,
2432         'summertimestartmonth' => 3,
2433         'summertimestartday' => 'Sun>=8',
2434         'summertimestarttime' => 25200000,
2435         'summertimeendmonth' => 11,
2436         'summertimeendday' => 'Sun>=1',
2437         'summertimeendtime' => 21600000),
2438     'America/Jamaica' => array(
2439         'offset' => -18000000,
2440         'shortname' => 'EST',
2441         'dstshortname' => null,
2442         'longname' => 'Eastern Standard Time'),
2443     'America/Jujuy' => array(
2444         'offset' => -10800000,
2445         'shortname' => 'ART',
2446         'dstshortname' => 'ARST',
2447         'longname' => 'Argentine Time',
2448         'summertimeoffset' => 3600000,
2449         'summertimestartmonth' => 10,
2450         'summertimestartday' => 'Sun>=1',
2451         'summertimestarttime' => 0,
2452         'summertimeendmonth' => 3,
2453         'summertimeendday' => 'Sun>=15',
2454         'summertimeendtime' => 0),
2455     'America/Juneau' => array(
2456         'offset' => -32400000,
2457         'shortname' => 'AKST',
2458         'dstshortname' => 'AKDT',
2459         'longname' => 'Alaska Standard Time',
2460         'dstlongname' => 'Alaska Daylight Time',
2461         'summertimeoffset' => 3600000,
2462         'summertimestartmonth' => 3,
2463         'summertimestartday' => 'Sun>=8',
2464         'summertimestarttime' => 39600000,
2465         'summertimeendmonth' => 11,
2466         'summertimeendday' => 'Sun>=1',
2467         'summertimeendtime' => 36000000),
2468     'America/Kentucky/Louisville' => array(
2469         'offset' => -18000000,
2470         'shortname' => 'EST',
2471         'dstshortname' => 'EDT',
2472         'longname' => 'Eastern Standard Time',
2473         'dstlongname' => 'Eastern Daylight Time',
2474         'summertimeoffset' => 3600000,
2475         'summertimestartmonth' => 3,
2476         'summertimestartday' => 'Sun>=8',
2477         'summertimestarttime' => 25200000,
2478         'summertimeendmonth' => 11,
2479         'summertimeendday' => 'Sun>=1',
2480         'summertimeendtime' => 21600000),
2481     'America/Kentucky/Monticello' => array(
2482         'offset' => -18000000,
2483         'shortname' => 'EST',
2484         'dstshortname' => 'EDT',
2485         'longname' => 'Eastern Standard Time',
2486         'dstlongname' => 'Eastern Daylight Time',
2487         'summertimeoffset' => 3600000,
2488         'summertimestartmonth' => 3,
2489         'summertimestartday' => 'Sun>=8',
2490         'summertimestarttime' => 25200000,
2491         'summertimeendmonth' => 11,
2492         'summertimeendday' => 'Sun>=1',
2493         'summertimeendtime' => 21600000),
2494     'America/Knox_IN' => array(
2495         'offset' => -21600000,
2496         'shortname' => 'CST',
2497         'dstshortname' => 'CDT',
2498         'longname' => 'Central Standard Time',
2499         'dstlongname' => 'Central Daylight Time',
2500         'summertimeoffset' => 3600000,
2501         'summertimestartmonth' => 3,
2502         'summertimestartday' => 'Sun>=8',
2503         'summertimestarttime' => 28800000,
2504         'summertimeendmonth' => 11,
2505         'summertimeendday' => 'Sun>=1',
2506         'summertimeendtime' => 25200000),
2507     'America/La_Paz' => array(
2508         'offset' => -14400000,
2509         'shortname' => 'BOT',
2510         'dstshortname' => null,
2511         'longname' => 'Bolivia Time'),
2512     'America/Lima' => array(
2513         'offset' => -18000000,
2514         'shortname' => 'PET',
2515         'dstshortname' => null,
2516         'longname' => 'Peru Time'),
2517     'America/Los_Angeles' => array(
2518         'offset' => -28800000,
2519         'shortname' => 'PST',
2520         'dstshortname' => 'PDT',
2521         'longname' => 'Pacific Standard Time',
2522         'dstlongname' => 'Pacific Daylight Time',
2523         'summertimeoffset' => 3600000,
2524         'summertimestartmonth' => 3,
2525         'summertimestartday' => 'Sun>=8',
2526         'summertimestarttime' => 36000000,
2527         'summertimeendmonth' => 11,
2528         'summertimeendday' => 'Sun>=1',
2529         'summertimeendtime' => 32400000),
2530     'America/Louisville' => array(
2531         'offset' => -18000000,
2532         'shortname' => 'EST',
2533         'dstshortname' => 'EDT',
2534         'longname' => 'Eastern Standard Time',
2535         'dstlongname' => 'Eastern Daylight Time',
2536         'summertimeoffset' => 3600000,
2537         'summertimestartmonth' => 3,
2538         'summertimestartday' => 'Sun>=8',
2539         'summertimestarttime' => 25200000,
2540         'summertimeendmonth' => 11,
2541         'summertimeendday' => 'Sun>=1',
2542         'summertimeendtime' => 21600000),
2543     'America/Maceio' => array(
2544         'offset' => -10800000,
2545         'shortname' => 'BRT',
2546         'dstshortname' => null,
2547         'longname' => 'Brazil Time',
2548         'dstlongname' => 'Brazil Summer Time'),
2549     'America/Managua' => array(
2550         'offset' => -21600000,
2551         'shortname' => 'CST',
2552         'dstshortname' => null,
2553         'longname' => 'Central Standard Time'),
2554     'America/Manaus' => array(
2555         'offset' => -14400000,
2556         'shortname' => 'AMT',
2557         'dstshortname' => null,
2558         'longname' => 'Amazon Standard Time'),
2559     'America/Marigot' => array(
2560         'offset' => -14400000,
2561         'shortname' => 'AST',
2562         'dstshortname' => null,
2563         'longname' => 'Atlantic Standard Time'),
2564     'America/Martinique' => array(
2565         'offset' => -14400000,
2566         'shortname' => 'AST',
2567         'dstshortname' => null,
2568         'longname' => 'Atlantic Standard Time'),
2569     'America/Mazatlan' => array(
2570         'offset' => -25200000,
2571         'shortname' => 'MST',
2572         'dstshortname' => 'MDT',
2573         'longname' => 'Mountain Standard Time',
2574         'dstlongname' => 'Mountain Daylight Time',
2575         'summertimeoffset' => 3600000,
2576         'summertimestartmonth' => 4,
2577         'summertimestartday' => 'Sun>=1',
2578         'summertimestarttime' => 32400000,
2579         'summertimeendmonth' => 10,
2580         'summertimeendday' => 'lastSun',
2581         'summertimeendtime' => 28800000),
2582     'America/Mendoza' => array(
2583         'offset' => -10800000,
2584         'shortname' => 'ART',
2585         'dstshortname' => 'ARST',
2586         'longname' => 'Argentine Time',
2587         'summertimeoffset' => 3600000,
2588         'summertimestartmonth' => 10,
2589         'summertimestartday' => 'Sun>=1',
2590         'summertimestarttime' => 0,
2591         'summertimeendmonth' => 3,
2592         'summertimeendday' => 'Sun>=15',
2593         'summertimeendtime' => 0),
2594     'America/Menominee' => array(
2595         'offset' => -21600000,
2596         'shortname' => 'CST',
2597         'dstshortname' => 'CDT',
2598         'longname' => 'Central Standard Time',
2599         'dstlongname' => 'Central Daylight Time',
2600         'summertimeoffset' => 3600000,
2601         'summertimestartmonth' => 3,
2602         'summertimestartday' => 'Sun>=8',
2603         'summertimestarttime' => 28800000,
2604         'summertimeendmonth' => 11,
2605         'summertimeendday' => 'Sun>=1',
2606         'summertimeendtime' => 25200000),
2607     'America/Merida' => array(
2608         'offset' => -21600000,
2609         'shortname' => 'CST',
2610         'dstshortname' => 'CDT',
2611         'longname' => 'Central Standard Time',
2612         'dstlongname' => 'Central Daylight Time',
2613         'summertimeoffset' => 3600000,
2614         'summertimestartmonth' => 4,
2615         'summertimestartday' => 'Sun>=1',
2616         'summertimestarttime' => 28800000,
2617         'summertimeendmonth' => 10,
2618         'summertimeendday' => 'lastSun',
2619         'summertimeendtime' => 25200000),
2620     'America/Mexico_City' => array(
2621         'offset' => -21600000,
2622         'shortname' => 'CST',
2623         'dstshortname' => 'CDT',
2624         'longname' => 'Central Standard Time',
2625         'summertimeoffset' => 3600000,
2626         'summertimestartmonth' => 4,
2627         'summertimestartday' => 'Sun>=1',
2628         'summertimestarttime' => 28800000,
2629         'summertimeendmonth' => 10,
2630         'summertimeendday' => 'lastSun',
2631         'summertimeendtime' => 25200000),
2632     'America/Miquelon' => array(
2633         'offset' => -10800000,
2634         'shortname' => 'PMST',
2635         'dstshortname' => 'PMDT',
2636         'longname' => 'Pierre & Miquelon Standard Time',
2637         'dstlongname' => 'Pierre & Miquelon Daylight Time',
2638         'summertimeoffset' => 3600000,
2639         'summertimestartmonth' => 3,
2640         'summertimestartday' => 'Sun>=8',
2641         'summertimestarttime' => 18000000,
2642         'summertimeendmonth' => 11,
2643         'summertimeendday' => 'Sun>=1',
2644         'summertimeendtime' => 14400000),
2645     'America/Moncton' => array(
2646         'offset' => -14400000,
2647         'shortname' => 'AST',
2648         'dstshortname' => 'ADT',
2649         'longname' => 'Atlantic Standard Time',
2650         'dstlongname' => 'Atlantic Daylight Time',
2651         'summertimeoffset' => 3600000,
2652         'summertimestartmonth' => 3,
2653         'summertimestartday' => 'Sun>=8',
2654         'summertimestarttime' => 21600000,
2655         'summertimeendmonth' => 11,
2656         'summertimeendday' => 'Sun>=1',
2657         'summertimeendtime' => 18000000),
2658     'America/Monterrey' => array(
2659         'offset' => -21600000,
2660         'shortname' => 'CST',
2661         'dstshortname' => 'CDT',
2662         'longname' => 'Central Standard Time',
2663         'dstlongname' => 'Central Daylight Time',
2664         'summertimeoffset' => 3600000,
2665         'summertimestartmonth' => 4,
2666         'summertimestartday' => 'Sun>=1',
2667         'summertimestarttime' => 28800000,
2668         'summertimeendmonth' => 10,
2669         'summertimeendday' => 'lastSun',
2670         'summertimeendtime' => 25200000),
2671     'America/Montevideo' => array(
2672         'offset' => -10800000,
2673         'shortname' => 'UYT',
2674         'dstshortname' => 'UYST',
2675         'longname' => 'Uruguay Time',
2676         'summertimeoffset' => 3600000,
2677         'summertimestartmonth' => 10,
2678         'summertimestartday' => 'Sun>=1',
2679         'summertimestarttime' => 18000000,
2680         'summertimeendmonth' => 3,
2681         'summertimeendday' => 'Sun>=8',
2682         'summertimeendtime' => 14400000),
2683     'America/Montreal' => array(
2684         'offset' => -18000000,
2685         'shortname' => 'EST',
2686         'dstshortname' => 'EDT',
2687         'longname' => 'Eastern Standard Time',
2688         'dstlongname' => 'Eastern Daylight Time',
2689         'summertimeoffset' => 3600000,
2690         'summertimestartmonth' => 3,
2691         'summertimestartday' => 'Sun>=8',
2692         'summertimestarttime' => 25200000,
2693         'summertimeendmonth' => 11,
2694         'summertimeendday' => 'Sun>=1',
2695         'summertimeendtime' => 21600000),
2696     'America/Montserrat' => array(
2697         'offset' => -14400000,
2698         'shortname' => 'AST',
2699         'dstshortname' => null,
2700         'longname' => 'Atlantic Standard Time'),
2701     'America/Nassau' => array(
2702         'offset' => -18000000,
2703         'shortname' => 'EST',
2704         'dstshortname' => 'EDT',
2705         'longname' => 'Eastern Standard Time',
2706         'dstlongname' => 'Eastern Daylight Time',
2707         'summertimeoffset' => 3600000,
2708         'summertimestartmonth' => 3,
2709         'summertimestartday' => 'Sun>=8',
2710         'summertimestarttime' => 25200000,
2711         'summertimeendmonth' => 11,
2712         'summertimeendday' => 'Sun>=1',
2713         'summertimeendtime' => 21600000),
2714     'America/New_York' => array(
2715         'offset' => -18000000,
2716         'shortname' => 'EST',
2717         'dstshortname' => 'EDT',
2718         'longname' => 'Eastern Standard Time',
2719         'dstlongname' => 'Eastern Daylight Time',
2720         'summertimeoffset' => 3600000,
2721         'summertimestartmonth' => 3,
2722         'summertimestartday' => 'Sun>=8',
2723         'summertimestarttime' => 25200000,
2724         'summertimeendmonth' => 11,
2725         'summertimeendday' => 'Sun>=1',
2726         'summertimeendtime' => 21600000),
2727     'America/Nipigon' => array(
2728         'offset' => -18000000,
2729         'shortname' => 'EST',
2730         'dstshortname' => 'EDT',
2731         'longname' => 'Eastern Standard Time',
2732         'dstlongname' => 'Eastern Daylight Time',
2733         'summertimeoffset' => 3600000,
2734         'summertimestartmonth' => 3,
2735         'summertimestartday' => 'Sun>=8',
2736         'summertimestarttime' => 25200000,
2737         'summertimeendmonth' => 11,
2738         'summertimeendday' => 'Sun>=1',
2739         'summertimeendtime' => 21600000),
2740     'America/Nome' => array(
2741         'offset' => -32400000,
2742         'shortname' => 'AKST',
2743         'dstshortname' => 'AKDT',
2744         'longname' => 'Alaska Standard Time',
2745         'dstlongname' => 'Alaska Daylight Time',
2746         'summertimeoffset' => 3600000,
2747         'summertimestartmonth' => 3,
2748         'summertimestartday' => 'Sun>=8',
2749         'summertimestarttime' => 39600000,
2750         'summertimeendmonth' => 11,
2751         'summertimeendday' => 'Sun>=1',
2752         'summertimeendtime' => 36000000),
2753     'America/Noronha' => array(
2754         'offset' => -7200000,
2755         'shortname' => 'FNT',
2756         'dstshortname' => null,
2757         'longname' => 'Fernando de Noronha Time'),
2758     'America/North_Dakota/Center' => array(
2759         'offset' => -21600000,
2760         'shortname' => 'CST',
2761         'dstshortname' => 'CDT',
2762         'longname' => 'Central Standard Time',
2763         'dstlongname' => 'Central Daylight Time',
2764         'summertimeoffset' => 3600000,
2765         'summertimestartmonth' => 3,
2766         'summertimestartday' => 'Sun>=8',
2767         'summertimestarttime' => 28800000,
2768         'summertimeendmonth' => 11,
2769         'summertimeendday' => 'Sun>=1',
2770         'summertimeendtime' => 25200000),
2771     'America/North_Dakota/New_Salem' => array(
2772         'offset' => -21600000,
2773         'shortname' => 'CST',
2774         'dstshortname' => 'CDT',
2775         'longname' => 'Central Standard Time',
2776         'dstlongname' => 'Central Daylight Time',
2777         'summertimeoffset' => 3600000,
2778         'summertimestartmonth' => 3,
2779         'summertimestartday' => 'Sun>=8',
2780         'summertimestarttime' => 28800000,
2781         'summertimeendmonth' => 11,
2782         'summertimeendday' => 'Sun>=1',
2783         'summertimeendtime' => 25200000),
2784     'America/Panama' => array(
2785         'offset' => -18000000,
2786         'shortname' => 'EST',
2787         'dstshortname' => null,
2788         'longname' => 'Eastern Standard Time'),
2789     'America/Pangnirtung' => array(
2790         'offset' => -18000000,
2791         'shortname' => 'EST',
2792         'dstshortname' => 'EDT',
2793         'longname' => 'Eastern Standard Time',
2794         'dstlongname' => 'Eastern Daylight Time',
2795         'summertimeoffset' => 3600000,
2796         'summertimestartmonth' => 3,
2797         'summertimestartday' => 'Sun>=8',
2798         'summertimestarttime' => 25200000,
2799         'summertimeendmonth' => 11,
2800         'summertimeendday' => 'Sun>=1',
2801         'summertimeendtime' => 21600000),
2802     'America/Paramaribo' => array(
2803         'offset' => -10800000,
2804         'shortname' => 'SRT',
2805         'dstshortname' => null,
2806         'longname' => 'Suriname Time'),
2807     'America/Phoenix' => array(
2808         'offset' => -25200000,
2809         'shortname' => 'MST',
2810         'dstshortname' => null,
2811         'longname' => 'Mountain Standard Time'),
2812     'America/Port-au-Prince' => array(
2813         'offset' => -18000000,
2814         'shortname' => 'EST',
2815         'dstshortname' => null,
2816         'longname' => 'Eastern Standard Time'),
2817     'America/Port_of_Spain' => array(
2818         'offset' => -14400000,
2819         'shortname' => 'AST',
2820         'dstshortname' => null,
2821         'longname' => 'Atlantic Standard Time'),
2822     'America/Porto_Acre' => array(
2823         'offset' => -18000000,
2824         'shortname' => 'ACT',
2825         'dstshortname' => null,
2826         'longname' => 'Acre Time'),
2827     'America/Porto_Velho' => array(
2828         'offset' => -14400000,
2829         'shortname' => 'AMT',
2830         'dstshortname' => null,
2831         'longname' => 'Amazon Standard Time'),
2832     'America/Puerto_Rico' => array(
2833         'offset' => -14400000,
2834         'shortname' => 'AST',
2835         'dstshortname' => null,
2836         'longname' => 'Atlantic Standard Time'),
2837     'America/Rainy_River' => array(
2838         'offset' => -21600000,
2839         'shortname' => 'CST',
2840         'dstshortname' => 'CDT',
2841         'longname' => 'Central Standard Time',
2842         'dstlongname' => 'Central Daylight Time',
2843         'summertimeoffset' => 3600000,
2844         'summertimestartmonth' => 3,
2845         'summertimestartday' => 'Sun>=8',
2846         'summertimestarttime' => 28800000,
2847         'summertimeendmonth' => 11,
2848         'summertimeendday' => 'Sun>=1',
2849         'summertimeendtime' => 25200000),
2850     'America/Rankin_Inlet' => array(
2851         'offset' => -21600000,
2852         'shortname' => 'CST',
2853         'dstshortname' => 'CDT',
2854         'longname' => 'Central Standard Time',
2855         'dstlongname' => 'Central Daylight Time',
2856         'summertimeoffset' => 3600000,
2857         'summertimestartmonth' => 3,
2858         'summertimestartday' => 'Sun>=8',
2859         'summertimestarttime' => 28800000,
2860         'summertimeendmonth' => 11,
2861         'summertimeendday' => 'Sun>=1',
2862         'summertimeendtime' => 25200000),
2863     'America/Recife' => array(
2864         'offset' => -10800000,
2865         'shortname' => 'BRT',
2866         'dstshortname' => null,
2867         'longname' => 'Brazil Time',
2868         'dstlongname' => 'Brazil Summer Time'),
2869     'America/Regina' => array(
2870         'offset' => -21600000,
2871         'shortname' => 'CST',
2872         'dstshortname' => null,
2873         'longname' => 'Central Standard Time'),
2874     'America/Resolute' => array(
2875         'offset' => -18000000,
2876         'shortname' => 'EST',
2877         'dstshortname' => null,
2878         'longname' => 'Eastern Standard Time'),
2879     'America/Rio_Branco' => array(
2880         'offset' => -18000000,
2881         'shortname' => 'ACT',
2882         'dstshortname' => null,
2883         'longname' => 'Acre Time'),
2884     'America/Rosario' => array(
2885         'offset' => -10800000,
2886         'shortname' => 'ART',
2887         'dstshortname' => 'ARST',
2888         'longname' => 'Argentine Time',
2889         'summertimeoffset' => 3600000,
2890         'summertimestartmonth' => 10,
2891         'summertimestartday' => 'Sun>=1',
2892         'summertimestarttime' => 0,
2893         'summertimeendmonth' => 3,
2894         'summertimeendday' => 'Sun>=15',
2895         'summertimeendtime' => 0),
2896     'America/Santiago' => array(
2897         'offset' => -14400000,
2898         'shortname' => 'CLT',
2899         'dstshortname' => 'CLST',
2900         'longname' => 'Chile Time',
2901         'dstlongname' => 'Chile Summer Time',
2902         'summertimeoffset' => 3600000,
2903         'summertimestartmonth' => 10,
2904         'summertimestartday' => 'Sun>=9',
2905         'summertimestarttime' => 14400000,
2906         'summertimeendmonth' => 3,
2907         'summertimeendday' => '30',
2908         'summertimeendtime' => 10800000),
2909     'America/Santo_Domingo' => array(
2910         'offset' => -14400000,
2911         'shortname' => 'AST',
2912         'dstshortname' => null,
2913         'longname' => 'Atlantic Standard Time'),
2914     'America/Sao_Paulo' => array(
2915         'offset' => -10800000,
2916         'shortname' => 'BRT',
2917         'dstshortname' => 'BRST',
2918         'longname' => 'Brazil Time',
2919         'dstlongname' => 'Brazil Summer Time',
2920         'summertimeoffset' => 3600000,
2921         'summertimestartmonth' => 10,
2922         'summertimestartday' => 'Sun>=8',
2923         'summertimestarttime' => 10800000,
2924         'summertimeendmonth' => 2,
2925         'summertimeendday' => 'Sun>=15',
2926         'summertimeendtime' => 7200000),
2927     'America/Scoresbysund' => array(
2928         'offset' => -3600000,
2929         'shortname' => 'EGT',
2930         'dstshortname' => 'EGST',
2931         'longname' => 'Eastern Greenland Time',
2932         'dstlongname' => 'Eastern Greenland Summer Time',
2933         'summertimeoffset' => 3600000,
2934         'summertimestartmonth' => 3,
2935         'summertimestartday' => 'lastSun',
2936         'summertimestarttime' => 3600000,
2937         'summertimeendmonth' => 10,
2938         'summertimeendday' => 'lastSun',
2939         'summertimeendtime' => 3600000),
2940     'America/Shiprock' => array(
2941         'offset' => -25200000,
2942         'shortname' => 'MST',
2943         'dstshortname' => 'MDT',
2944         'longname' => 'Mountain Standard Time',
2945         'dstlongname' => 'Mountain Daylight Time',
2946         'summertimeoffset' => 3600000,
2947         'summertimestartmonth' => 3,
2948         'summertimestartday' => 'Sun>=8',
2949         'summertimestarttime' => 32400000,
2950         'summertimeendmonth' => 11,
2951         'summertimeendday' => 'Sun>=1',
2952         'summertimeendtime' => 28800000),
2953     'America/St_Barthelemy' => array(
2954         'offset' => -14400000,
2955         'shortname' => 'AST',
2956         'dstshortname' => null,
2957         'longname' => 'Atlantic Standard Time'),
2958     'America/St_Johns' => array(
2959         'offset' => -12600000,
2960         'shortname' => 'NST',
2961         'dstshortname' => 'NDT',
2962         'longname' => 'Newfoundland Standard Time',
2963         'dstlongname' => 'Newfoundland Daylight Time',
2964         'summertimeoffset' => 3600000,
2965         'summertimestartmonth' => 3,
2966         'summertimestartday' => 'Sun>=8',
2967         'summertimestarttime' => 12660000,
2968         'summertimeendmonth' => 11,
2969         'summertimeendday' => 'Sun>=1',
2970         'summertimeendtime' => 9060000),
2971     'America/St_Kitts' => array(
2972         'offset' => -14400000,
2973         'shortname' => 'AST',
2974         'dstshortname' => null,
2975         'longname' => 'Atlantic Standard Time'),
2976     'America/St_Lucia' => array(
2977         'offset' => -14400000,
2978         'shortname' => 'AST',
2979         'dstshortname' => null,
2980         'longname' => 'Atlantic Standard Time'),
2981     'America/St_Thomas' => array(
2982         'offset' => -14400000,
2983         'shortname' => 'AST',
2984         'dstshortname' => null,
2985         'longname' => 'Atlantic Standard Time'),
2986     'America/St_Vincent' => array(
2987         'offset' => -14400000,
2988         'shortname' => 'AST',
2989         'dstshortname' => null,
2990         'longname' => 'Atlantic Standard Time'),
2991     'America/Swift_Current' => array(
2992         'offset' => -21600000,
2993         'shortname' => 'CST',
2994         'dstshortname' => null,
2995         'longname' => 'Central Standard Time'),
2996     'America/Tegucigalpa' => array(
2997         'offset' => -21600000,
2998         'shortname' => 'CST',
2999         'dstshortname' => null,
3000         'longname' => 'Central Standard Time'),
3001     'America/Thule' => array(
3002         'offset' => -14400000,
3003         'shortname' => 'AST',
3004         'dstshortname' => 'ADT',
3005         'longname' => 'Atlantic Standard Time',
3006         'summertimeoffset' => 3600000,
3007         'summertimestartmonth' => 3,
3008         'summertimestartday' => 'Sun>=8',
3009         'summertimestarttime' => 21600000,
3010         'summertimeendmonth' => 11,
3011         'summertimeendday' => 'Sun>=1',
3012         'summertimeendtime' => 18000000),
3013     'America/Thunder_Bay' => array(
3014         'offset' => -18000000,
3015         'shortname' => 'EST',
3016         'dstshortname' => 'EDT',
3017         'longname' => 'Eastern Standard Time',
3018         'dstlongname' => 'Eastern Daylight Time',
3019         'summertimeoffset' => 3600000,
3020         'summertimestartmonth' => 3,
3021         'summertimestartday' => 'Sun>=8',
3022         'summertimestarttime' => 25200000,
3023         'summertimeendmonth' => 11,
3024         'summertimeendday' => 'Sun>=1',
3025         'summertimeendtime' => 21600000),
3026     'America/Tijuana' => array(
3027         'offset' => -28800000,
3028         'shortname' => 'PST',
3029         'dstshortname' => 'PDT',
3030         'longname' => 'Pacific Standard Time',
3031         'dstlongname' => 'Pacific Daylight Time',
3032         'summertimeoffset' => 3600000,
3033         'summertimestartmonth' => 4,
3034         'summertimestartday' => 'Sun>=1',
3035         'summertimestarttime' => 36000000,
3036         'summertimeendmonth' => 10,
3037         'summertimeendday' => 'lastSun',
3038         'summertimeendtime' => 32400000),
3039     'America/Toronto' => array(
3040         'offset' => -18000000,
3041         'shortname' => 'EST',
3042         'dstshortname' => 'EDT',
3043         'longname' => 'Eastern Standard Time',
3044         'dstlongname' => 'Eastern Daylight Time',
3045         'summertimeoffset' => 3600000,
3046         'summertimestartmonth' => 3,
3047         'summertimestartday' => 'Sun>=8',
3048         'summertimestarttime' => 25200000,
3049         'summertimeendmonth' => 11,
3050         'summertimeendday' => 'Sun>=1',
3051         'summertimeendtime' => 21600000),
3052     'America/Tortola' => array(
3053         'offset' => -14400000,
3054         'shortname' => 'AST',
3055         'dstshortname' => null,
3056         'longname' => 'Atlantic Standard Time'),
3057     'America/Vancouver' => array(
3058         'offset' => -28800000,
3059         'shortname' => 'PST',
3060         'dstshortname' => 'PDT',
3061         'longname' => 'Pacific Standard Time',
3062         'dstlongname' => 'Pacific Daylight Time',
3063         'summertimeoffset' => 3600000,
3064         'summertimestartmonth' => 3,
3065         'summertimestartday' => 'Sun>=8',
3066         'summertimestarttime' => 36000000,
3067         'summertimeendmonth' => 11,
3068         'summertimeendday' => 'Sun>=1',
3069         'summertimeendtime' => 32400000),
3070     'America/Virgin' => array(
3071         'offset' => -14400000,
3072         'shortname' => 'AST',
3073         'dstshortname' => null,
3074         'longname' => 'Atlantic Standard Time'),
3075     'America/Whitehorse' => array(
3076         'offset' => -28800000,
3077         'shortname' => 'PST',
3078         'dstshortname' => 'PDT',
3079         'longname' => 'Pacific Standard Time',
3080         'dstlongname' => 'Pacific Daylight Time',
3081         'summertimeoffset' => 3600000,
3082         'summertimestartmonth' => 3,
3083         'summertimestartday' => 'Sun>=8',
3084         'summertimestarttime' => 36000000,
3085         'summertimeendmonth' => 11,
3086         'summertimeendday' => 'Sun>=1',
3087         'summertimeendtime' => 32400000),
3088     'America/Winnipeg' => array(
3089         'offset' => -21600000,
3090         'shortname' => 'CST',
3091         'dstshortname' => 'CDT',
3092         'longname' => 'Central Standard Time',
3093         'dstlongname' => 'Central Daylight Time',
3094         'summertimeoffset' => 3600000,
3095         'summertimestartmonth' => 3,
3096         'summertimestartday' => 'Sun>=8',
3097         'summertimestarttime' => 28800000,
3098         'summertimeendmonth' => 11,
3099         'summertimeendday' => 'Sun>=1',
3100         'summertimeendtime' => 25200000),
3101     'America/Yakutat' => array(
3102         'offset' => -32400000,
3103         'shortname' => 'AKST',
3104         'dstshortname' => 'AKDT',
3105         'longname' => 'Alaska Standard Time',
3106         'dstlongname' => 'Alaska Daylight Time',
3107         'summertimeoffset' => 3600000,
3108         'summertimestartmonth' => 3,
3109         'summertimestartday' => 'Sun>=8',
3110         'summertimestarttime' => 39600000,
3111         'summertimeendmonth' => 11,
3112         'summertimeendday' => 'Sun>=1',
3113         'summertimeendtime' => 36000000),
3114     'America/Yellowknife' => array(
3115         'offset' => -25200000,
3116         'shortname' => 'MST',
3117         'dstshortname' => 'MDT',
3118         'longname' => 'Mountain Standard Time',
3119         'dstlongname' => 'Mountain Daylight Time',
3120         'summertimeoffset' => 3600000,
3121         'summertimestartmonth' => 3,
3122         'summertimestartday' => 'Sun>=8',
3123         'summertimestarttime' => 32400000,
3124         'summertimeendmonth' => 11,
3125         'summertimeendday' => 'Sun>=1',
3126         'summertimeendtime' => 28800000),
3127     'Antarctica/Casey' => array(
3128         'offset' => 28800000,
3129         'shortname' => 'WST',
3130         'dstshortname' => null,
3131         'longname' => 'Western Standard Time (Australia)'),
3132     'Antarctica/Davis' => array(
3133         'offset' => 25200000,
3134         'shortname' => 'DAVT',
3135         'dstshortname' => null,
3136         'longname' => 'Davis Time'),
3137     'Antarctica/DumontDUrville' => array(
3138         'offset' => 36000000,
3139         'shortname' => 'DDUT',
3140         'dstshortname' => null,
3141         'longname' => 'Dumont-d\'Urville Time'),
3142     'Antarctica/Mawson' => array(
3143         'offset' => 21600000,
3144         'shortname' => 'MAWT',
3145         'dstshortname' => null,
3146         'longname' => 'Mawson Time'),
3147     'Antarctica/McMurdo' => array(
3148         'offset' => 43200000,
3149         'shortname' => 'NZST',
3150         'dstshortname' => 'NZDT',
3151         'longname' => 'New Zealand Standard Time',
3152         'dstlongname' => 'New Zealand Daylight Time',
3153         'summertimeoffset' => 3600000,
3154         'summertimestartmonth' => 9,
3155         'summertimestartday' => 'lastSun',
3156         'summertimestarttime' => -36000000,
3157         'summertimeendmonth' => 4,
3158         'summertimeendday' => 'Sun>=1',
3159         'summertimeendtime' => -36000000),
3160     'Antarctica/Palmer' => array(
3161         'offset' => -14400000,
3162         'shortname' => 'CLT',
3163         'dstshortname' => 'CLST',
3164         'longname' => 'Chile Time',
3165         'dstlongname' => 'Chile Summer Time',
3166         'summertimeoffset' => 3600000,
3167         'summertimestartmonth' => 10,
3168         'summertimestartday' => 'Sun>=9',
3169         'summertimestarttime' => 14400000,
3170         'summertimeendmonth' => 3,
3171         'summertimeendday' => 'Sun>=9',
3172         'summertimeendtime' => 10800000),
3173     'Antarctica/Rothera' => array(
3174         'offset' => -10800000,
3175         'shortname' => 'ROTT',
3176         'dstshortname' => null,
3177         'longname' => 'Rothera Time'),
3178     'Antarctica/South_Pole' => array(
3179         'offset' => 43200000,
3180         'shortname' => 'NZST',
3181         'dstshortname' => 'NZDT',
3182         'longname' => 'New Zealand Standard Time',
3183         'dstlongname' => 'New Zealand Daylight Time',
3184         'summertimeoffset' => 3600000,
3185         'summertimestartmonth' => 9,
3186         'summertimestartday' => 'lastSun',
3187         'summertimestarttime' => -36000000,
3188         'summertimeendmonth' => 4,
3189         'summertimeendday' => 'Sun>=1',
3190         'summertimeendtime' => -36000000),
3191     'Antarctica/Syowa' => array(
3192         'offset' => 10800000,
3193         'shortname' => 'SYOT',
3194         'dstshortname' => null,
3195         'longname' => 'Syowa Time'),
3196     'Antarctica/Vostok' => array(
3197         'offset' => 21600000,
3198         'shortname' => 'VOST',
3199         'dstshortname' => null,
3200         'longname' => 'Vostok time'),
3201     'Arctic/Longyearbyen' => array(
3202         'offset' => 3600000,
3203         'shortname' => 'CET',
3204         'dstshortname' => 'CEST',
3205         'longname' => 'Central European Time',
3206         'dstlongname' => 'Central European Summer Time',
3207         'summertimeoffset' => 3600000,
3208         'summertimestartmonth' => 3,
3209         'summertimestartday' => 'lastSun',
3210         'summertimestarttime' => 3600000,
3211         'summertimeendmonth' => 10,
3212         'summertimeendday' => 'lastSun',
3213         'summertimeendtime' => 3600000),
3214     'Asia/Aden' => array(
3215         'offset' => 10800000,
3216         'shortname' => 'AST',
3217         'dstshortname' => null,
3218         'longname' => 'Arabia Standard Time'),
3219     'Asia/Almaty' => array(
3220         'offset' => 21600000,
3221         'shortname' => 'ALMT',
3222         'dstshortname' => null,
3223         'longname' => 'Alma-Ata Time',
3224         'dstlongname' => 'Alma-Ata Summer Time'),
3225     'Asia/Amman' => array(
3226         'offset' => 7200000,
3227         'shortname' => 'EET',
3228         'dstshortname' => 'EEST',
3229         'longname' => 'Eastern European Time',
3230         'dstlongname' => 'Eastern European Summer Time',
3231         'summertimeoffset' => 3600000,
3232         'summertimestartmonth' => 3,
3233         'summertimestartday' => 'lastThu',
3234         'summertimestarttime' => -7200000,
3235         'summertimeendmonth' => 10,
3236         'summertimeendday' => 'lastFri',
3237         'summertimeendtime' => -7200000),
3238     'Asia/Anadyr' => array(
3239         'offset' => 43200000,
3240         'shortname' => 'ANAT',
3241         'dstshortname' => 'ANAST',
3242         'longname' => 'Anadyr Time',
3243         'dstlongname' => 'Anadyr Summer Time',
3244         'summertimeoffset' => 3600000,
3245         'summertimestartmonth' => 3,
3246         'summertimestartday' => 'lastSun',
3247         'summertimestarttime' => -36000000,
3248         'summertimeendmonth' => 10,
3249         'summertimeendday' => 'lastSun',
3250         'summertimeendtime' => -36000000),
3251     'Asia/Aqtau' => array(
3252         'offset' => 18000000,
3253         'shortname' => 'AQTT',
3254         'dstshortname' => null,
3255         'longname' => 'Aqtau Time',
3256         'dstlongname' => 'Aqtau Summer Time'),
3257     'Asia/Aqtobe' => array(
3258         'offset' => 18000000,
3259         'shortname' => 'AQTT',
3260         'dstshortname' => null,
3261         'longname' => 'Aqtobe Time',
3262         'dstlongname' => 'Aqtobe Summer Time'),
3263     'Asia/Ashgabat' => array(
3264         'offset' => 18000000,
3265         'shortname' => 'TMT',
3266         'dstshortname' => null,
3267         'longname' => 'Turkmenistan Time'),
3268     'Asia/Ashkhabad' => array(
3269         'offset' => 18000000,
3270         'shortname' => 'TMT',
3271         'dstshortname' => null,
3272         'longname' => 'Turkmenistan Time'),
3273     'Asia/Baghdad' => array(
3274         'offset' => 10800000,
3275         'shortname' => 'AST',
3276         'dstshortname' => 'ADT',
3277         'longname' => 'Arabia Standard Time',
3278         'dstlongname' => 'Arabia Daylight Time',
3279         'summertimeoffset' => 3600000,
3280         'summertimestartmonth' => 4,
3281         'summertimestartday' => '1',
3282         'summertimestarttime' => 0,
3283         'summertimeendmonth' => 10,
3284         'summertimeendday' => '1',
3285         'summertimeendtime' => 0),
3286     'Asia/Bahrain' => array(
3287         'offset' => 10800000,
3288         'shortname' => 'AST',
3289         'dstshortname' => null,
3290         'longname' => 'Arabia Standard Time'),
3291     'Asia/Baku' => array(
3292         'offset' => 14400000,
3293         'shortname' => 'AZT',
3294         'dstshortname' => 'AZST',
3295         'longname' => 'Azerbaijan Time',
3296         'dstlongname' => 'Azerbaijan Summer Time',
3297         'summertimeoffset' => 3600000,
3298         'summertimestartmonth' => 3,
3299         'summertimestartday' => 'lastSun',
3300         'summertimestarttime' => 0,
3301         'summertimeendmonth' => 10,
3302         'summertimeendday' => 'lastSun',
3303         'summertimeendtime' => 0),
3304     'Asia/Bangkok' => array(
3305         'offset' => 25200000,
3306         'shortname' => 'ICT',
3307         'dstshortname' => null,
3308         'longname' => 'Indochina Time'),
3309     'Asia/Beirut' => array(
3310         'offset' => 7200000,
3311         'shortname' => 'EET',
3312         'dstshortname' => 'EEST',
3313         'longname' => 'Eastern European Time',
3314         'dstlongname' => 'Eastern European Summer Time',
3315         'summertimeoffset' => 3600000,
3316         'summertimestartmonth' => 3,
3317         'summertimestartday' => 'lastSun',
3318         'summertimestarttime' => -7200000,
3319         'summertimeendmonth' => 10,
3320         'summertimeendday' => 'lastSun',
3321         'summertimeendtime' => -10800000),
3322     'Asia/Bishkek' => array(
3323         'offset' => 21600000,
3324         'shortname' => 'KGT',
3325         'dstshortname' => null,
3326         'longname' => 'Kirgizstan Time',
3327         'dstlongname' => 'Kirgizstan Summer Time'),
3328     'Asia/Brunei' => array(
3329         'offset' => 28800000,
3330         'shortname' => 'BNT',
3331         'dstshortname' => null,
3332         'longname' => 'Brunei Time'),
3333     'Asia/Calcutta' => array(
3334         'offset' => 19800000,
3335         'shortname' => 'IST',
3336         'dstshortname' => null,
3337         'longname' => 'India Standard Time'),
3338     'Asia/Choibalsan' => array(
3339         'offset' => 32400000,
3340         'shortname' => 'CHOT',
3341         'dstshortname' => null,
3342         'longname' => 'Choibalsan Time'),
3343     'Asia/Chongqing' => array(
3344         'offset' => 28800000,
3345         'shortname' => 'CST',
3346         'dstshortname' => null,
3347         'longname' => 'China Standard Time'),
3348     'Asia/Chungking' => array(
3349         'offset' => 28800000,
3350         'shortname' => 'CST',
3351         'dstshortname' => null,
3352         'longname' => 'China Standard Time'),
3353     'Asia/Colombo' => array(
3354         'offset' => 19800000,
3355         'shortname' => 'IST',
3356         'dstshortname' => null,
3357         'longname' => 'India Standard Time'),
3358     'Asia/Dacca' => array(
3359         'offset' => 21600000,
3360         'shortname' => 'BDT',
3361         'dstshortname' => null,
3362         'longname' => 'Bangladesh Time'),
3363     'Asia/Damascus' => array(
3364         'offset' => 7200000,
3365         'shortname' => 'EET',
3366         'dstshortname' => 'EEST',
3367         'longname' => 'Eastern European Time',
3368         'dstlongname' => 'Eastern European Summer Time',
3369         'summertimeoffset' => 3600000,
3370         'summertimestartmonth' => 3,
3371         'summertimestartday' => 'lastFri',
3372         'summertimestarttime' => -7200000,
3373         'summertimeendmonth' => 11,
3374         'summertimeendday' => 'Fri>=1',
3375         'summertimeendtime' => -10800000),
3376     'Asia/Dhaka' => array(
3377         'offset' => 21600000,
3378         'shortname' => 'BDT',
3379         'dstshortname' => null,
3380         'longname' => 'Bangladesh Time'),
3381     'Asia/Dili' => array(
3382         'offset' => 32400000,
3383         'shortname' => 'TLT',
3384         'dstshortname' => null,
3385         'longname' => 'East Timor Time'),
3386     'Asia/Dubai' => array(
3387         'offset' => 14400000,
3388         'shortname' => 'GST',
3389         'dstshortname' => null,
3390         'longname' => 'Gulf Standard Time'),
3391     'Asia/Dushanbe' => array(
3392         'offset' => 18000000,
3393         'shortname' => 'TJT',
3394         'dstshortname' => null,
3395         'longname' => 'Tajikistan Time'),
3396     'Asia/Gaza' => array(
3397         'offset' => 7200000,
3398         'shortname' => 'EET',
3399         'dstshortname' => 'EEST',
3400         'longname' => 'Eastern European Time',
3401         'dstlongname' => 'Eastern European Summer Time',
3402         'summertimeoffset' => 3600000,
3403         'summertimestartmonth' => 4,
3404         'summertimestartday' => '1',
3405         'summertimestarttime' => -7200000,
3406         'summertimeendmonth' => 9,
3407         'summertimeendday' => 'Thu>=8',
3408         'summertimeendtime' => -3600000),
3409     'Asia/Harbin' => array(
3410         'offset' => 28800000,
3411         'shortname' => 'CST',
3412         'dstshortname' => null,
3413         'longname' => 'China Standard Time'),
3414     'Asia/Hong_Kong' => array(
3415         'offset' => 28800000,
3416         'shortname' => 'HKT',
3417         'dstshortname' => null,
3418         'longname' => 'Hong Kong Time'),
3419     'Asia/Hovd' => array(
3420         'offset' => 25200000,
3421         'shortname' => 'HOVT',
3422         'dstshortname' => null,
3423         'longname' => 'Hovd Time'),
3424     'Asia/Irkutsk' => array(
3425         'offset' => 28800000,
3426         'shortname' => 'IRKT',
3427         'dstshortname' => 'IRKST',
3428         'longname' => 'Irkutsk Time',
3429         'dstlongname' => 'Irkutsk Summer Time',
3430         'summertimeoffset' => 3600000,
3431         'summertimestartmonth' => 3,
3432         'summertimestartday' => 'lastSun',
3433         'summertimestarttime' => -21600000,
3434         'summertimeendmonth' => 10,
3435         'summertimeendday' => 'lastSun',
3436         'summertimeendtime' => -21600000),
3437     'Asia/Istanbul' => array(
3438         'offset' => 7200000,
3439         'shortname' => 'EET',
3440         'dstshortname' => 'EEST',
3441         'longname' => 'Eastern European Time',
3442         'dstlongname' => 'Eastern European Summer Time',
3443         'summertimeoffset' => 3600000,
3444         'summertimestartmonth' => 3,
3445         'summertimestartday' => 'lastSun',
3446         'summertimestarttime' => 3600000,
3447         'summertimeendmonth' => 10,
3448         'summertimeendday' => 'lastSun',
3449         'summertimeendtime' => 3600000),
3450     'Asia/Jakarta' => array(
3451         'offset' => 25200000,
3452         'shortname' => 'WIT',
3453         'dstshortname' => null,
3454         'longname' => 'West Indonesia Time'),
3455     'Asia/Jayapura' => array(
3456         'offset' => 32400000,
3457         'shortname' => 'EIT',
3458         'dstshortname' => null,
3459         'longname' => 'East Indonesia Time'),
3460     'Asia/Jerusalem' => array(
3461         'offset' => 7200000,
3462         'shortname' => 'IST',
3463         'dstshortname' => 'IDT',
3464         'longname' => 'Israel Standard Time',
3465         'dstlongname' => 'Israel Daylight Time',
3466         'summertimeoffset' => 3600000,
3467         'summertimestartmonth' => 3,
3468         'summertimestartday' => 'Fri>=26',
3469         'summertimestarttime' => 0,
3470         'summertimeendmonth' => 10,
3471         'summertimeendday' => '5',
3472         'summertimeendtime' => -3600000),
3473     'Asia/Kabul' => array(
3474         'offset' => 16200000,
3475         'shortname' => 'AFT',
3476         'dstshortname' => null,
3477         'longname' => 'Afghanistan Time'),
3478     'Asia/Kamchatka' => array(
3479         'offset' => 43200000,
3480         'shortname' => 'PETT',
3481         'dstshortname' => 'PETST',
3482         'longname' => 'Petropavlovsk-Kamchatski Time',
3483         'dstlongname' => 'Petropavlovsk-Kamchatski Summer Time',
3484         'summertimeoffset' => 3600000,
3485         'summertimestartmonth' => 3,
3486         'summertimestartday' => 'lastSun',
3487         'summertimestarttime' => -36000000,
3488         'summertimeendmonth' => 10,
3489         'summertimeendday' => 'lastSun',
3490         'summertimeendtime' => -36000000),
3491     'Asia/Karachi' => array(
3492         'offset' => 18000000,
3493         'shortname' => 'PKT',
3494         'dstshortname' => null,
3495         'longname' => 'Pakistan Time'),
3496     'Asia/Kashgar' => array(
3497         'offset' => 28800000,
3498         'shortname' => 'CST',
3499         'dstshortname' => null,
3500         'longname' => 'China Standard Time'),
3501     'Asia/Katmandu' => array(
3502         'offset' => 20700000,
3503         'shortname' => 'NPT',
3504         'dstshortname' => null,
3505         'longname' => 'Nepal Time'),
3506     'Asia/Krasnoyarsk' => array(
3507         'offset' => 25200000,
3508         'shortname' => 'KRAT',
3509         'dstshortname' => 'KRAST',
3510         'longname' => 'Krasnoyarsk Time',
3511         'dstlongname' => 'Krasnoyarsk Summer Time',
3512         'summertimeoffset' => 3600000,
3513         'summertimestartmonth' => 3,
3514         'summertimestartday' => 'lastSun',
3515         'summertimestarttime' => -18000000,
3516         'summertimeendmonth' => 10,
3517         'summertimeendday' => 'lastSun',
3518         'summertimeendtime' => -18000000),
3519     'Asia/Kuala_Lumpur' => array(
3520         'offset' => 28800000,
3521         'shortname' => 'MYT',
3522         'dstshortname' => null,
3523         'longname' => 'Malaysia Time'),
3524     'Asia/Kuching' => array(
3525         'offset' => 28800000,
3526         'shortname' => 'MYT',
3527         'dstshortname' => null,
3528         'longname' => 'Malaysia Time'),
3529     'Asia/Kuwait' => array(
3530         'offset' => 10800000,
3531         'shortname' => 'AST',
3532         'dstshortname' => null,
3533         'longname' => 'Arabia Standard Time'),
3534     'Asia/Macao' => array(
3535         'offset' => 28800000,
3536         'shortname' => 'CST',
3537         'dstshortname' => null,
3538         'longname' => 'China Standard Time'),
3539     'Asia/Macau' => array(
3540         'offset' => 28800000,
3541         'shortname' => 'CST',
3542         'dstshortname' => null,
3543         'longname' => 'China Standard Time'),
3544     'Asia/Magadan' => array(
3545         'offset' => 39600000,
3546         'shortname' => 'MAGT',
3547         'dstshortname' => 'MAGST',
3548         'longname' => 'Magadan Time',
3549         'dstlongname' => 'Magadan Summer Time',
3550         'summertimeoffset' => 3600000,
3551         'summertimestartmonth' => 3,
3552         'summertimestartday' => 'lastSun',
3553         'summertimestarttime' => -32400000,
3554         'summertimeendmonth' => 10,
3555         'summertimeendday' => 'lastSun',
3556         'summertimeendtime' => -32400000),
3557     'Asia/Makassar' => array(
3558         'offset' => 28800000,
3559         'shortname' => 'CIT',
3560         'dstshortname' => null,
3561         'longname' => 'Central Indonesia Time'),
3562     'Asia/Manila' => array(
3563         'offset' => 28800000,
3564         'shortname' => 'PHT',
3565         'dstshortname' => null,
3566         'longname' => 'Philippines Time'),
3567     'Asia/Muscat' => array(
3568         'offset' => 14400000,
3569         'shortname' => 'GST',
3570         'dstshortname' => null,
3571         'longname' => 'Gulf Standard Time'),
3572     'Asia/Nicosia' => array(
3573         'offset' => 7200000,
3574         'shortname' => 'EET',
3575         'dstshortname' => 'EEST',
3576         'longname' => 'Eastern European Time',
3577         'dstlongname' => 'Eastern European Summer Time',
3578         'summertimeoffset' => 3600000,
3579         'summertimestartmonth' => 3,
3580         'summertimestartday' => 'lastSun',
3581         'summertimestarttime' => 3600000,
3582         'summertimeendmonth' => 10,
3583         'summertimeendday' => 'lastSun',
3584         'summertimeendtime' => 3600000),
3585     'Asia/Novosibirsk' => array(
3586         'offset' => 21600000,
3587         'shortname' => 'NOVT',
3588         'dstshortname' => 'NOVST',
3589         'longname' => 'Novosibirsk Time',
3590         'dstlongname' => 'Novosibirsk Summer Time',
3591         'summertimeoffset' => 3600000,
3592         'summertimestartmonth' => 3,
3593         'summertimestartday' => 'lastSun',
3594         'summertimestarttime' => -14400000,
3595         'summertimeendmonth' => 10,
3596         'summertimeendday' => 'lastSun',
3597         'summertimeendtime' => -14400000),
3598     'Asia/Omsk' => array(
3599         'offset' => 21600000,
3600         'shortname' => 'OMST',
3601         'dstshortname' => 'OMSST',
3602         'longname' => 'Omsk Time',
3603         'dstlongname' => 'Omsk Summer Time',
3604         'summertimeoffset' => 3600000,
3605         'summertimestartmonth' => 3,
3606         'summertimestartday' => 'lastSun',
3607         'summertimestarttime' => -14400000,
3608         'summertimeendmonth' => 10,
3609         'summertimeendday' => 'lastSun',
3610         'summertimeendtime' => -14400000),
3611     'Asia/Oral' => array(
3612         'offset' => 18000000,
3613         'shortname' => 'ORAT',
3614         'dstshortname' => null,
3615         'longname' => 'Oral Time'),
3616     'Asia/Phnom_Penh' => array(
3617         'offset' => 25200000,
3618         'shortname' => 'ICT',
3619         'dstshortname' => null,
3620         'longname' => 'Indochina Time'),
3621     'Asia/Pontianak' => array(
3622         'offset' => 25200000,
3623         'shortname' => 'WIT',
3624         'dstshortname' => null,
3625         'longname' => 'West Indonesia Time'),
3626     'Asia/Pyongyang' => array(
3627         'offset' => 32400000,
3628         'shortname' => 'KST',
3629         'dstshortname' => null,
3630         'longname' => 'Korea Standard Time'),
3631     'Asia/Qatar' => array(
3632         'offset' => 10800000,
3633         'shortname' => 'AST',
3634         'dstshortname' => null,
3635         'longname' => 'Arabia Standard Time'),
3636     'Asia/Qyzylorda' => array(
3637         'offset' => 21600000,
3638         'shortname' => 'QYZT',
3639         'dstshortname' => null,
3640         'longname' => 'Qyzylorda Time'),
3641     'Asia/Rangoon' => array(
3642         'offset' => 23400000,
3643         'shortname' => 'MMT',
3644         'dstshortname' => null,
3645         'longname' => 'Myanmar Time'),
3646     'Asia/Riyadh' => array(
3647         'offset' => 10800000,
3648         'shortname' => 'AST',
3649         'dstshortname' => null,
3650         'longname' => 'Arabia Standard Time'),
3651     'Asia/Riyadh87' => array(
3652         'offset' => 11224000,
3653         'shortname' => '',
3654         'dstshortname' => null,
3655         'longname' => 'GMT+03:07'),
3656     'Asia/Riyadh88' => array(
3657         'offset' => 11224000,
3658         'shortname' => '',
3659         'dstshortname' => null,
3660         'longname' => 'GMT+03:07'),
3661     'Asia/Riyadh89' => array(
3662         'offset' => 11224000,
3663         'shortname' => '',
3664         'dstshortname' => null,
3665         'longname' => 'GMT+03:07'),
3666     'Asia/Saigon' => array(
3667         'offset' => 25200000,
3668         'shortname' => 'ICT',
3669         'dstshortname' => null,
3670         'longname' => 'Indochina Time'),
3671     'Asia/Sakhalin' => array(
3672         'offset' => 36000000,
3673         'shortname' => 'SAKT',
3674         'dstshortname' => 'SAKST',
3675         'longname' => 'Sakhalin Time',
3676         'dstlongname' => 'Sakhalin Summer Time',
3677         'summertimeoffset' => 3600000,
3678         'summertimestartmonth' => 3,
3679         'summertimestartday' => 'lastSun',
3680         'summertimestarttime' => -28800000,
3681         'summertimeendmonth' => 10,
3682         'summertimeendday' => 'lastSun',
3683         'summertimeendtime' => -28800000),
3684     'Asia/Samarkand' => array(
3685         'offset' => 18000000,
3686         'shortname' => 'UZT',
3687         'dstshortname' => null,
3688         'longname' => 'Turkmenistan Time'),
3689     'Asia/Seoul' => array(
3690         'offset' => 32400000,
3691         'shortname' => 'KST',
3692         'dstshortname' => null,
3693         'longname' => 'Korea Standard Time'),
3694     'Asia/Shanghai' => array(
3695         'offset' => 28800000,
3696         'shortname' => 'CST',
3697         'dstshortname' => null,
3698         'longname' => 'China Standard Time'),
3699     'Asia/Singapore' => array(
3700         'offset' => 28800000,
3701         'shortname' => 'SGT',
3702         'dstshortname' => null,
3703         'longname' => 'Singapore Time'),
3704     'Asia/Taipei' => array(
3705         'offset' => 28800000,
3706         'shortname' => 'CST',
3707         'dstshortname' => null,
3708         'longname' => 'China Standard Time'),
3709     'Asia/Tashkent' => array(
3710         'offset' => 18000000,
3711         'shortname' => 'UZT',
3712         'dstshortname' => null,
3713         'longname' => 'Uzbekistan Time'),
3714     'Asia/Tbilisi' => array(
3715         'offset' => 14400000,
3716         'shortname' => 'GET',
3717         'dstshortname' => null,
3718         'longname' => 'Georgia Time',
3719         'dstlongname' => 'Georgia Summer Time'),
3720     'Asia/Tehran' => array(
3721         'offset' => 12600000,
3722         'shortname' => 'IRST',
3723         'dstshortname' => 'IRDT',
3724         'longname' => 'Iran Time',
3725         'dstlongname' => 'Iran Summer Time',
3726         'summertimeoffset' => 3600000,
3727         'summertimestartmonth' => 3,
3728         'summertimestartday' => '21',
3729         'summertimestarttime' => -12600000,
3730         'summertimeendmonth' => 9,
3731         'summertimeendday' => '21',
3732         'summertimeendtime' => -16200000),
3733     'Asia/Tel_Aviv' => array(
3734         'offset' => 7200000,
3735         'shortname' => 'IST',
3736         'dstshortname' => 'IDT',
3737         'longname' => 'Israel Standard Time',
3738         'dstlongname' => 'Israel Daylight Time',
3739         'summertimeoffset' => 3600000,
3740         'summertimestartmonth' => 3,
3741         'summertimestartday' => 'Fri>=26',
3742         'summertimestarttime' => 0,
3743         'summertimeendmonth' => 10,
3744         'summertimeendday' => '5',
3745         'summertimeendtime' => -3600000),
3746     'Asia/Thimbu' => array(
3747         'offset' => 21600000,
3748         'shortname' => 'BTT',
3749         'dstshortname' => null,
3750         'longname' => 'Bhutan Time'),
3751     'Asia/Thimphu' => array(
3752         'offset' => 21600000,
3753         'shortname' => 'BTT',
3754         'dstshortname' => null,
3755         'longname' => 'Bhutan Time'),
3756     'Asia/Tokyo' => array(
3757         'offset' => 32400000,
3758         'shortname' => 'JST',
3759         'dstshortname' => null,
3760         'longname' => 'Japan Standard Time'),
3761     'Asia/Ujung_Pandang' => array(
3762         'offset' => 28800000,
3763         'shortname' => 'CIT',
3764         'dstshortname' => null,
3765         'longname' => 'Central Indonesia Time'),
3766     'Asia/Ulaanbaatar' => array(
3767         'offset' => 28800000,
3768         'shortname' => 'ULAT',
3769         'dstshortname' => null,
3770         'longname' => 'Ulaanbaatar Time'),
3771     'Asia/Ulan_Bator' => array(
3772         'offset' => 28800000,
3773         'shortname' => 'ULAT',
3774         'dstshortname' => null,
3775         'longname' => 'Ulaanbaatar Time'),
3776     'Asia/Urumqi' => array(
3777         'offset' => 28800000,
3778         'shortname' => 'CST',
3779         'dstshortname' => null,
3780         'longname' => 'China Standard Time'),
3781     'Asia/Vientiane' => array(
3782         'offset' => 25200000,
3783         'shortname' => 'ICT',
3784         'dstshortname' => null,
3785         'longname' => 'Indochina Time'),
3786     'Asia/Vladivostok' => array(
3787         'offset' => 36000000,
3788         'shortname' => 'VLAT',
3789         'dstshortname' => 'VLAST',
3790         'longname' => 'Vladivostok Time',
3791         'dstlongname' => 'Vladivostok Summer Time',
3792         'summertimeoffset' => 3600000,
3793         'summertimestartmonth' => 3,
3794         'summertimestartday' => 'lastSun',
3795         'summertimestarttime' => -28800000,
3796         'summertimeendmonth' => 10,
3797         'summertimeendday' => 'lastSun',
3798         'summertimeendtime' => -28800000),
3799     'Asia/Yakutsk' => array(
3800         'offset' => 32400000,
3801         'shortname' => 'YAKT',
3802         'dstshortname' => 'YAKST',
3803         'longname' => 'Yakutsk Time',
3804         'dstlongname' => 'Yaktsk Summer Time',
3805         'summertimeoffset' => 3600000,
3806         'summertimestartmonth' => 3,
3807         'summertimestartday' => 'lastSun',
3808         'summertimestarttime' => -25200000,
3809         'summertimeendmonth' => 10,
3810         'summertimeendday' => 'lastSun',
3811         'summertimeendtime' => -25200000),
3812     'Asia/Yekaterinburg' => array(
3813         'offset' => 18000000,
3814         'shortname' => 'YEKT',
3815         'dstshortname' => 'YEKST',
3816         'longname' => 'Yekaterinburg Time',
3817         'dstlongname' => 'Yekaterinburg Summer Time',
3818         'summertimeoffset' => 3600000,
3819         'summertimestartmonth' => 3,
3820         'summertimestartday' => 'lastSun',
3821         'summertimestarttime' => -10800000,
3822         'summertimeendmonth' => 10,
3823         'summertimeendday' => 'lastSun',
3824         'summertimeendtime' => -10800000),
3825     'Asia/Yerevan' => array(
3826         'offset' => 14400000,
3827         'shortname' => 'AMT',
3828         'dstshortname' => 'AMST',
3829         'longname' => 'Armenia Time',
3830         'dstlongname' => 'Armenia Summer Time',
3831         'summertimeoffset' => 3600000,
3832         'summertimestartmonth' => 3,
3833         'summertimestartday' => 'lastSun',
3834         'summertimestarttime' => -7200000,
3835         'summertimeendmonth' => 10,
3836         'summertimeendday' => 'lastSun',
3837         'summertimeendtime' => -7200000),
3838     'Atlantic/Azores' => array(
3839         'offset' => -3600000,
3840         'shortname' => 'AZOT',
3841         'dstshortname' => 'AZOST',
3842         'longname' => 'Azores Time',
3843         'dstlongname' => 'Azores Summer Time',
3844         'summertimeoffset' => 3600000,
3845         'summertimestartmonth' => 3,
3846         'summertimestartday' => 'lastSun',
3847         'summertimestarttime' => 3600000,
3848         'summertimeendmonth' => 10,
3849         'summertimeendday' => 'lastSun',
3850         'summertimeendtime' => 3600000),
3851     'Atlantic/Bermuda' => array(
3852         'offset' => -14400000,
3853         'shortname' => 'AST',
3854         'dstshortname' => 'ADT',
3855         'longname' => 'Atlantic Standard Time',
3856         'dstlongname' => 'Atlantic Daylight Time',
3857         'summertimeoffset' => 3600000,
3858         'summertimestartmonth' => 3,
3859         'summertimestartday' => 'Sun>=8',
3860         'summertimestarttime' => 21600000,
3861         'summertimeendmonth' => 11,
3862         'summertimeendday' => 'Sun>=1',
3863         'summertimeendtime' => 18000000),
3864     'Atlantic/Canary' => array(
3865         'offset' => 0,
3866         'shortname' => 'WET',
3867         'dstshortname' => 'WEST',
3868         'longname' => 'Western European Time',
3869         'dstlongname' => 'Western European Summer Time',
3870         'summertimeoffset' => 3600000,
3871         'summertimestartmonth' => 3,
3872         'summertimestartday' => 'lastSun',
3873         'summertimestarttime' => 3600000,
3874         'summertimeendmonth' => 10,
3875         'summertimeendday' => 'lastSun',
3876         'summertimeendtime' => 3600000),
3877     'Atlantic/Cape_Verde' => array(
3878         'offset' => -3600000,
3879         'shortname' => 'CVT',
3880         'dstshortname' => null,
3881         'longname' => 'Cape Verde Time'),
3882     'Atlantic/Faeroe' => array(
3883         'offset' => 0,
3884         'shortname' => 'WET',
3885         'dstshortname' => 'WEST',
3886         'longname' => 'Western European Time',
3887         'dstlongname' => 'Western European Summer Time',
3888         'summertimeoffset' => 3600000,
3889         'summertimestartmonth' => 3,
3890         'summertimestartday' => 'lastSun',
3891         'summertimestarttime' => 3600000,
3892         'summertimeendmonth' => 10,
3893         'summertimeendday' => 'lastSun',
3894         'summertimeendtime' => 3600000),
3895     'Atlantic/Faroe' => array(
3896         'offset' => 0,
3897         'shortname' => 'WET',
3898         'dstshortname' => 'WEST',
3899         'longname' => 'Western Europe Time',
3900         'dstlongname' => 'Western Europe Summer Time',
3901         'summertimeoffset' => 3600000,
3902         'summertimestartmonth' => 3,
3903         'summertimestartday' => 'lastSun',
3904         'summertimestarttime' => 3600000,
3905         'summertimeendmonth' => 10,
3906         'summertimeendday' => 'lastSun',
3907         'summertimeendtime' => 3600000),
3908     'Atlantic/Jan_Mayen' => array(
3909         'offset' => 3600000,
3910         'shortname' => 'CET',
3911         'dstshortname' => 'CEST',
3912         'longname' => 'Eastern Greenland Time',
3913         'dstlongname' => 'Eastern Greenland Summer Time',
3914         'summertimeoffset' => 3600000,
3915         'summertimestartmonth' => 3,
3916         'summertimestartday' => 'lastSun',
3917         'summertimestarttime' => 3600000,
3918         'summertimeendmonth' => 10,
3919         'summertimeendday' => 'lastSun',
3920         'summertimeendtime' => 3600000),
3921     'Atlantic/Madeira' => array(
3922         'offset' => 0,
3923         'shortname' => 'WET',
3924         'dstshortname' => 'WEST',
3925         'longname' => 'Western European Time',
3926         'dstlongname' => 'Western European Summer Time',
3927         'summertimeoffset' => 3600000,
3928         'summertimestartmonth' => 3,
3929         'summertimestartday' => 'lastSun',
3930         'summertimestarttime' => 3600000,
3931         'summertimeendmonth' => 10,
3932         'summertimeendday' => 'lastSun',
3933         'summertimeendtime' => 3600000),
3934     'Atlantic/Reykjavik' => array(
3935         'offset' => 0,
3936         'shortname' => 'GMT',
3937         'dstshortname' => null,
3938         'longname' => 'Greenwich Mean Time'),
3939     'Atlantic/South_Georgia' => array(
3940         'offset' => -7200000,
3941         'shortname' => 'GST',
3942         'dstshortname' => null,
3943         'longname' => 'South Georgia Standard Time'),
3944     'Atlantic/St_Helena' => array(
3945         'offset' => 0,
3946         'shortname' => 'GMT',
3947         'dstshortname' => null,
3948         'longname' => 'Greenwich Mean Time'),
3949     'Atlantic/Stanley' => array(
3950         'offset' => -14400000,
3951         'shortname' => 'FKT',
3952         'dstshortname' => 'FKST',
3953         'longname' => 'Falkland Is. Time',
3954         'dstlongname' => 'Falkland Is. Summer Time',
3955         'summertimeoffset' => 3600000,
3956         'summertimestartmonth' => 9,
3957         'summertimestartday' => 'Sun>=1',
3958         'summertimestarttime' => 7200000,
3959         'summertimeendmonth' => 4,
3960         'summertimeendday' => 'Sun>=15',
3961         'summertimeendtime' => 7200000),
3962     'Australia/ACT' => array(
3963         'offset' => 36000000,
3964         'shortname' => 'EST',
3965         'dstshortname' => 'EST',
3966         'longname' => 'Eastern Standard Time (New South Wales)',
3967         'dstlongname' => 'Eastern Summer Time (New South Wales)',
3968         'summertimeoffset' => 3600000,
3969         'summertimestartmonth' => 10,
3970         'summertimestartday' => 'Sun>=1',
3971         'summertimestarttime' => -28800000,
3972         'summertimeendmonth' => 4,
3973         'summertimeendday' => 'Sun>=1',
3974         'summertimeendtime' => -28800000),
3975     'Australia/Adelaide' => array(
3976         'offset' => 34200000,
3977         'shortname' => 'CST',
3978         'dstshortname' => 'CST',
3979         'longname' => 'Central Standard Time (South Australia)',
3980         'dstlongname' => 'Central Summer Time (South Australia)',
3981         'summertimeoffset' => 3600000,
3982         'summertimestartmonth' => 10,
3983         'summertimestartday' => 'Sun>=1',
3984         'summertimestarttime' => -27000000,
3985         'summertimeendmonth' => 4,
3986         'summertimeendday' => 'Sun>=1',
3987         'summertimeendtime' => -27000000),
3988     'Australia/Brisbane' => array(
3989         'offset' => 36000000,
3990         'shortname' => 'EST',
3991         'dstshortname' => null,
3992         'longname' => 'Eastern Standard Time (Queensland)'),
3993     'Australia/Broken_Hill' => array(
3994         'offset' => 34200000,
3995         'shortname' => 'CST',
3996         'dstshortname' => 'CST',
3997         'longname' => 'Central Standard Time (South Australia/New South Wales)',
3998         'dstlongname' => 'Central Summer Time (South Australia/New South Wales)',
3999         'summertimeoffset' => 3600000,
4000         'summertimestartmonth' => 10,
4001         'summertimestartday' => 'Sun>=1',
4002         'summertimestarttime' => -27000000,
4003         'summertimeendmonth' => 4,
4004         'summertimeendday' => 'Sun>=1',
4005         'summertimeendtime' => -27000000),
4006     'Australia/Canberra' => array(
4007         'offset' => 36000000,
4008         'shortname' => 'EST',
4009         'dstshortname' => 'EST',
4010         'longname' => 'Eastern Standard Time (New South Wales)',
4011         'dstlongname' => 'Eastern Summer Time (New South Wales)',
4012         'summertimeoffset' => 3600000,
4013         'summertimestartmonth' => 10,
4014         'summertimestartday' => 'Sun>=1',
4015         'summertimestarttime' => -28800000,
4016         'summertimeendmonth' => 4,
4017         'summertimeendday' => 'Sun>=1',
4018         'summertimeendtime' => -28800000),
4019     'Australia/Currie' => array(
4020         'offset' => 36000000,
4021         'shortname' => 'EST',
4022         'dstshortname' => 'EST',
4023         'longname' => 'Eastern Standard Time',
4024         'dstlongname' => 'Eastern Standard Time',
4025         'summertimeoffset' => 3600000,
4026         'summertimestartmonth' => 10,
4027         'summertimestartday' => 'Sun>=1',
4028         'summertimestarttime' => -28800000,
4029         'summertimeendmonth' => 4,
4030         'summertimeendday' => 'Sun>=1',
4031         'summertimeendtime' => -28800000),
4032     'Australia/Darwin' => array(
4033         'offset' => 34200000,
4034         'shortname' => 'CST',
4035         'dstshortname' => null,
4036         'longname' => 'Central Standard Time (Northern Territory)'),
4037     'Australia/Eucla' => array(
4038         'offset' => 31500000,
4039         'shortname' => 'CWST',
4040         'dstshortname' => 'CWST',
4041         'longname' => 'Central Western Standard Time',
4042         'dstlongname' => 'Central Western Daylight Time',
4043         'summertimeoffset' => 3600000,
4044         'summertimestartmonth' => 10,
4045         'summertimestartday' => 'lastSun',
4046         'summertimestarttime' => -24300000,
4047         'summertimeendmonth' => 3,
4048         'summertimeendday' => 'lastSun',
4049         'summertimeendtime' => -24300000),
4050     'Australia/Hobart' => array(
4051         'offset' => 36000000,
4052         'shortname' => 'EST',
4053         'dstshortname' => 'EST',
4054         'longname' => 'Eastern Standard Time (Tasmania)',
4055         'dstlongname' => 'Eastern Summer Time (Tasmania)',
4056         'summertimeoffset' => 3600000,
4057         'summertimestartmonth' => 10,
4058         'summertimestartday' => 'Sun>=1',
4059         'summertimestarttime' => -28800000,
4060         'summertimeendmonth' => 4,
4061         'summertimeendday' => 'Sun>=1',
4062         'summertimeendtime' => -28800000),
4063     'Australia/LHI' => array(
4064         'offset' => 37800000,
4065         'shortname' => 'LHST',
4066         'dstshortname' => 'LHST',
4067         'longname' => 'Load Howe Standard Time',
4068         'dstlongname' => 'Load Howe Summer Time',
4069         'summertimeoffset' => 1800000,
4070         'summertimestartmonth' => 10,
4071         'summertimestartday' => 'Sun>=1',
4072         'summertimestarttime' => 7200000,
4073         'summertimeendmonth' => 4,
4074         'summertimeendday' => 'Sun>=1',
4075         'summertimeendtime' => 7200000),
4076     'Australia/Lindeman' => array(
4077         'offset' => 36000000,
4078         'shortname' => 'EST',
4079         'dstshortname' => null,
4080         'longname' => 'Eastern Standard Time (Queensland)'),
4081     'Australia/Lord_Howe' => array(
4082         'offset' => 37800000,
4083         'shortname' => 'LHST',
4084         'dstshortname' => 'LHST',
4085         'longname' => 'Load Howe Standard Time',
4086         'dstlongname' => 'Load Howe Summer Time',
4087         'summertimeoffset' => 1800000,
4088         'summertimestartmonth' => 10,
4089         'summertimestartday' => 'Sun>=1',
4090         'summertimestarttime' => 7200000,
4091         'summertimeendmonth' => 4,
4092         'summertimeendday' => 'Sun>=1',
4093         'summertimeendtime' => 7200000),
4094     'Australia/Melbourne' => array(
4095         'offset' => 36000000,
4096         'shortname' => 'EST',
4097         'dstshortname' => 'EST',
4098         'longname' => 'Eastern Standard Time (Victoria)',
4099         'dstlongname' => 'Eastern Summer Time (Victoria)',
4100         'summertimeoffset' => 3600000,
4101         'summertimestartmonth' => 10,
4102         'summertimestartday' => 'Sun>=1',
4103         'summertimestarttime' => -28800000,
4104         'summertimeendmonth' => 4,
4105         'summertimeendday' => 'Sun>=1',
4106         'summertimeendtime' => -28800000),
4107     'Australia/NSW' => array(
4108         'offset' => 36000000,
4109         'shortname' => 'EST',
4110         'dstshortname' => 'EST',
4111         'longname' => 'Eastern Standard Time (New South Wales)',
4112         'dstlongname' => 'Eastern Summer Time (New South Wales)',
4113         'summertimeoffset' => 3600000,
4114         'summertimestartmonth' => 10,
4115         'summertimestartday' => 'Sun>=1',
4116         'summertimestarttime' => -28800000,
4117         'summertimeendmonth' => 4,
4118         'summertimeendday' => 'Sun>=1',
4119         'summertimeendtime' => -28800000),
4120     'Australia/North' => array(
4121         'offset' => 34200000,
4122         'shortname' => 'CST',
4123         'dstshortname' => null,
4124         'longname' => 'Central Standard Time (Northern Territory)'),
4125     'Australia/Perth' => array(
4126         'offset' => 28800000,
4127         'shortname' => 'WST',
4128         'dstshortname' => 'WST',
4129         'longname' => 'Western Standard Time (Australia)',
4130         'summertimeoffset' => 3600000,
4131         'summertimestartmonth' => 10,
4132         'summertimestartday' => 'lastSun',
4133         'summertimestarttime' => -21600000,
4134         'summertimeendmonth' => 3,
4135         'summertimeendday' => 'lastSun',
4136         'summertimeendtime' => -21600000),
4137     'Australia/Queensland' => array(
4138         'offset' => 36000000,
4139         'shortname' => 'EST',
4140         'dstshortname' => null,
4141         'longname' => 'Eastern Standard Time (Queensland)'),
4142     'Australia/South' => array(
4143         'offset' => 34200000,
4144         'shortname' => 'CST',
4145         'dstshortname' => 'CST',
4146         'longname' => 'Central Standard Time (South Australia)',
4147         'dstlongname' => 'Central Summer Time (South Australia)',
4148         'summertimeoffset' => 3600000,
4149         'summertimestartmonth' => 10,
4150         'summertimestartday' => 'Sun>=1',
4151         'summertimestarttime' => -27000000,
4152         'summertimeendmonth' => 4,
4153         'summertimeendday' => 'Sun>=1',
4154         'summertimeendtime' => -27000000),
4155     'Australia/Sydney' => array(
4156         'offset' => 36000000,
4157         'shortname' => 'EST',
4158         'dstshortname' => 'EST',
4159         'longname' => 'Eastern Standard Time (New South Wales)',
4160         'dstlongname' => 'Eastern Summer Time (New South Wales)',
4161         'summertimeoffset' => 3600000,
4162         'summertimestartmonth' => 10,
4163         'summertimestartday' => 'Sun>=1',
4164         'summertimestarttime' => -28800000,
4165         'summertimeendmonth' => 4,
4166         'summertimeendday' => 'Sun>=1',
4167         'summertimeendtime' => -28800000),
4168     'Australia/Tasmania' => array(
4169         'offset' => 36000000,
4170         'shortname' => 'EST',
4171         'dstshortname' => 'EST',
4172         'longname' => 'Eastern Standard Time (Tasmania)',
4173         'dstlongname' => 'Eastern Summer Time (Tasmania)',
4174         'summertimeoffset' => 3600000,
4175         'summertimestartmonth' => 10,
4176         'summertimestartday' => 'Sun>=1',
4177         'summertimestarttime' => -28800000,
4178         'summertimeendmonth' => 4,
4179         'summertimeendday' => 'Sun>=1',
4180         'summertimeendtime' => -28800000),
4181     'Australia/Victoria' => array(
4182         'offset' => 36000000,
4183         'shortname' => 'EST',
4184         'dstshortname' => 'EST',
4185         'longname' => 'Eastern Standard Time (Victoria)',
4186         'dstlongname' => 'Eastern Summer Time (Victoria)',
4187         'summertimeoffset' => 3600000,
4188         'summertimestartmonth' => 10,
4189         'summertimestartday' => 'Sun>=1',
4190         'summertimestarttime' => -28800000,
4191         'summertimeendmonth' => 4,
4192         'summertimeendday' => 'Sun>=1',
4193         'summertimeendtime' => -28800000),
4194     'Australia/West' => array(
4195         'offset' => 28800000,
4196         'shortname' => 'WST',
4197         'dstshortname' => 'WST',
4198         'longname' => 'Western Standard Time (Australia)',
4199         'summertimeoffset' => 3600000,
4200         'summertimestartmonth' => 10,
4201         'summertimestartday' => 'lastSun',
4202         'summertimestarttime' => -21600000,
4203         'summertimeendmonth' => 3,
4204         'summertimeendday' => 'lastSun',
4205         'summertimeendtime' => -21600000),
4206     'Australia/Yancowinna' => array(
4207         'offset' => 34200000,
4208         'shortname' => 'CST',
4209         'dstshortname' => 'CST',
4210         'longname' => 'Central Standard Time (South Australia/New South Wales)',
4211         'dstlongname' => 'Central Summer Time (South Australia/New South Wales)',
4212         'summertimeoffset' => 3600000,
4213         'summertimestartmonth' => 10,
4214         'summertimestartday' => 'Sun>=1',
4215         'summertimestarttime' => -27000000,
4216         'summertimeendmonth' => 4,
4217         'summertimeendday' => 'Sun>=1',
4218         'summertimeendtime' => -27000000),
4219     'Brazil/Acre' => array(
4220         'offset' => -18000000,
4221         'shortname' => 'ACT',
4222         'dstshortname' => null,
4223         'longname' => 'Acre Time'),
4224     'Brazil/DeNoronha' => array(
4225         'offset' => -7200000,
4226         'shortname' => 'FNT',
4227         'dstshortname' => null,
4228         'longname' => 'Fernando de Noronha Time'),
4229     'Brazil/East' => array(
4230         'offset' => -10800000,
4231         'shortname' => 'BRT',
4232         'dstshortname' => 'BRST',
4233         'longname' => 'Brazil Time',
4234         'dstlongname' => 'Brazil Summer Time',
4235         'summertimeoffset' => 3600000,
4236         'summertimestartmonth' => 10,
4237         'summertimestartday' => 'Sun>=8',
4238         'summertimestarttime' => 10800000,
4239         'summertimeendmonth' => 2,
4240         'summertimeendday' => 'Sun>=15',
4241         'summertimeendtime' => 7200000),
4242     'Brazil/West' => array(
4243         'offset' => -14400000,
4244         'shortname' => 'AMT',
4245         'dstshortname' => null,
4246         'longname' => 'Amazon Standard Time'),
4247     'CET' => array(
4248         'offset' => 3600000,
4249         'shortname' => 'CET',
4250         'dstshortname' => 'CEST',
4251         'longname' => 'Central European Time',
4252         'dstlongname' => 'Central European Summer Time',
4253         'summertimeoffset' => 3600000,
4254         'summertimestartmonth' => 3,
4255         'summertimestartday' => 'lastSun',
4256         'summertimestarttime' => 3600000,
4257         'summertimeendmonth' => 10,
4258         'summertimeendday' => 'lastSun',
4259         'summertimeendtime' => 3600000),
4260     'CST6CDT' => array(
4261         'offset' => -21600000,
4262         'shortname' => 'CST',
4263         'dstshortname' => 'CDT',
4264         'longname' => 'Central Standard Time',
4265         'dstlongname' => 'Central Daylight Time',
4266         'summertimeoffset' => 3600000,
4267         'summertimestartmonth' => 3,
4268         'summertimestartday' => 'Sun>=8',
4269         'summertimestarttime' => 28800000,
4270         'summertimeendmonth' => 11,
4271         'summertimeendday' => 'Sun>=1',
4272         'summertimeendtime' => 25200000),
4273     'Canada/Atlantic' => array(
4274         'offset' => -14400000,
4275         'shortname' => 'AST',
4276         'dstshortname' => 'ADT',
4277         'longname' => 'Atlantic Standard Time',
4278         'dstlongname' => 'Atlantic Daylight Time',
4279         'summertimeoffset' => 3600000,
4280         'summertimestartmonth' => 3,
4281         'summertimestartday' => 'Sun>=8',
4282         'summertimestarttime' => 21600000,
4283         'summertimeendmonth' => 11,
4284         'summertimeendday' => 'Sun>=1',
4285         'summertimeendtime' => 18000000),
4286     'Canada/Central' => array(
4287         'offset' => -21600000,
4288         'shortname' => 'CST',
4289         'dstshortname' => 'CDT',
4290         'longname' => 'Central Standard Time',
4291         'dstlongname' => 'Central Daylight Time',
4292         'summertimeoffset' => 3600000,
4293         'summertimestartmonth' => 3,
4294         'summertimestartday' => 'Sun>=8',
4295         'summertimestarttime' => 28800000,
4296         'summertimeendmonth' => 11,
4297         'summertimeendday' => 'Sun>=1',
4298         'summertimeendtime' => 25200000),
4299     'Canada/East-Saskatchewan' => array(
4300         'offset' => -21600000,
4301         'shortname' => 'CST',
4302         'dstshortname' => null,
4303         'longname' => 'Central Standard Time'),
4304     'Canada/Eastern' => array(
4305         'offset' => -18000000,
4306         'shortname' => 'EST',
4307         'dstshortname' => 'EDT',
4308         'longname' => 'Eastern Standard Time',
4309         'dstlongname' => 'Eastern Daylight Time',
4310         'summertimeoffset' => 3600000,
4311         'summertimestartmonth' => 3,
4312         'summertimestartday' => 'Sun>=8',
4313         'summertimestarttime' => 25200000,
4314         'summertimeendmonth' => 11,
4315         'summertimeendday' => 'Sun>=1',
4316         'summertimeendtime' => 21600000),
4317     'Canada/Mountain' => array(
4318         'offset' => -25200000,
4319         'shortname' => 'MST',
4320         'dstshortname' => 'MDT',
4321         'longname' => 'Mountain Standard Time',
4322         'dstlongname' => 'Mountain Daylight Time',
4323         'summertimeoffset' => 3600000,
4324         'summertimestartmonth' => 3,
4325         'summertimestartday' => 'Sun>=8',
4326         'summertimestarttime' => 32400000,
4327         'summertimeendmonth' => 11,
4328         'summertimeendday' => 'Sun>=1',
4329         'summertimeendtime' => 28800000),
4330     'Canada/Newfoundland' => array(
4331         'offset' => -12600000,
4332         'shortname' => 'NST',
4333         'dstshortname' => 'NDT',
4334         'longname' => 'Newfoundland Standard Time',
4335         'dstlongname' => 'Newfoundland Daylight Time',
4336         'summertimeoffset' => 3600000,
4337         'summertimestartmonth' => 3,
4338         'summertimestartday' => 'Sun>=8',
4339         'summertimestarttime' => 12660000,
4340         'summertimeendmonth' => 11,
4341         'summertimeendday' => 'Sun>=1',
4342         'summertimeendtime' => 9060000),
4343     'Canada/Pacific' => array(
4344         'offset' => -28800000,
4345         'shortname' => 'PST',
4346         'dstshortname' => 'PDT',
4347         'longname' => 'Pacific Standard Time',
4348         'dstlongname' => 'Pacific Daylight Time',
4349         'summertimeoffset' => 3600000,
4350         'summertimestartmonth' => 3,
4351         'summertimestartday' => 'Sun>=8',
4352         'summertimestarttime' => 36000000,
4353         'summertimeendmonth' => 11,
4354         'summertimeendday' => 'Sun>=1',
4355         'summertimeendtime' => 32400000),
4356     'Canada/Saskatchewan' => array(
4357         'offset' => -21600000,
4358         'shortname' => 'CST',
4359         'dstshortname' => null,
4360         'longname' => 'Central Standard Time'),
4361     'Canada/Yukon' => array(
4362         'offset' => -28800000,
4363         'shortname' => 'PST',
4364         'dstshortname' => 'PDT',
4365         'longname' => 'Pacific Standard Time',
4366         'dstlongname' => 'Pacific Daylight Time',
4367         'summertimeoffset' => 3600000,
4368         'summertimestartmonth' => 3,
4369         'summertimestartday' => 'Sun>=8',
4370         'summertimestarttime' => 36000000,
4371         'summertimeendmonth' => 11,
4372         'summertimeendday' => 'Sun>=1',
4373         'summertimeendtime' => 32400000),
4374     'Chile/Continental' => array(
4375         'offset' => -14400000,
4376         'shortname' => 'CLT',
4377         'dstshortname' => 'CLST',
4378         'longname' => 'Chile Time',
4379         'dstlongname' => 'Chile Summer Time',
4380         'summertimeoffset' => 3600000,
4381         'summertimestartmonth' => 10,
4382         'summertimestartday' => 'Sun>=9',
4383         'summertimestarttime' => 14400000,
4384         'summertimeendmonth' => 3,
4385         'summertimeendday' => '30',
4386         'summertimeendtime' => 10800000),
4387     'Chile/EasterIsland' => array(
4388         'offset' => -21600000,
4389         'shortname' => 'EAST',
4390         'dstshortname' => 'EASST',
4391         'longname' => 'Easter Is. Time',
4392         'dstlongname' => 'Easter Is. Summer Time',
4393         'summertimeoffset' => 3600000,
4394         'summertimestartmonth' => 10,
4395         'summertimestartday' => 'Sun>=9',
4396         'summertimestarttime' => 14400000,
4397         'summertimeendmonth' => 3,
4398         'summertimeendday' => '30',
4399         'summertimeendtime' => 10800000),
4400     'Cuba' => array(
4401         'offset' => -18000000,
4402         'shortname' => 'CST',
4403         'dstshortname' => 'CDT',
4404         'longname' => 'Central Standard Time',
4405         'dstlongname' => 'Central Daylight Time',
4406         'summertimeoffset' => 3600000,
4407         'summertimestartmonth' => 3,
4408         'summertimestartday' => 'Sun>=8',
4409         'summertimestarttime' => 18000000,
4410         'summertimeendmonth' => 10,
4411         'summertimeendday' => 'lastSun',
4412         'summertimeendtime' => 18000000),
4413     'EET' => array(
4414         'offset' => 7200000,
4415         'shortname' => 'EET',
4416         'dstshortname' => 'EEST',
4417         'longname' => 'Eastern European Time',
4418         'dstlongname' => 'Eastern European Summer Time',
4419         'summertimeoffset' => 3600000,
4420         'summertimestartmonth' => 3,
4421         'summertimestartday' => 'lastSun',
4422         'summertimestarttime' => 3600000,
4423         'summertimeendmonth' => 10,
4424         'summertimeendday' => 'lastSun',
4425         'summertimeendtime' => 3600000),
4426     'EST' => array(
4427         'offset' => -18000000,
4428         'shortname' => 'EST',
4429         'dstshortname' => null,
4430         'longname' => 'Eastern Standard Time',
4431         'dstlongname' => 'Eastern Daylight Time'),
4432     'EST5EDT' => array(
4433         'offset' => -18000000,
4434         'shortname' => 'EST',
4435         'dstshortname' => 'EDT',
4436         'longname' => 'Eastern Standard Time',
4437         'dstlongname' => 'Eastern Daylight Time',
4438         'summertimeoffset' => 3600000,
4439         'summertimestartmonth' => 3,
4440         'summertimestartday' => 'Sun>=8',
4441         'summertimestarttime' => 25200000,
4442         'summertimeendmonth' => 11,
4443         'summertimeendday' => 'Sun>=1',
4444         'summertimeendtime' => 21600000),
4445     'Egypt' => array(
4446         'offset' => 7200000,
4447         'shortname' => 'EET',
4448         'dstshortname' => 'EEST',
4449         'longname' => 'Eastern European Time',
4450         'dstlongname' => 'Eastern European Summer Time',
4451         'summertimeoffset' => 3600000,
4452         'summertimestartmonth' => 4,
4453         'summertimestartday' => 'lastFri',
4454         'summertimestarttime' => -7200000,
4455         'summertimeendmonth' => 8,
4456         'summertimeendday' => 'lastThu',
4457         'summertimeendtime' => 75600000),
4458     'Eire' => array(
4459         'offset' => 0,
4460         'shortname' => 'GMT',
4461         'dstshortname' => 'IST',
4462         'longname' => 'Greenwich Mean Time',
4463         'dstlongname' => 'Irish Summer Time',
4464         'summertimeoffset' => 3600000,
4465         'summertimestartmonth' => 3,
4466         'summertimestartday' => 'lastSun',
4467         'summertimestarttime' => 3600000,
4468         'summertimeendmonth' => 10,
4469         'summertimeendday' => 'lastSun',
4470         'summertimeendtime' => 3600000),
4471     'Etc/GMT' => array(
4472         'offset' => 0,
4473         'shortname' => 'GMT',
4474         'dstshortname' => null,
4475         'longname' => 'GMT+00:00'),
4476     'Etc/GMT+0' => array(
4477         'offset' => 0,
4478         'shortname' => 'GMT',
4479         'dstshortname' => null,
4480         'longname' => 'GMT+00:00'),
4481     'Etc/GMT+1' => array(
4482         'offset' => -3600000,
4483         'shortname' => 'GMT+1',
4484         'dstshortname' => null,
4485         'longname' => 'GMT-01:00'),
4486     'Etc/GMT+10' => array(
4487         'offset' => -36000000,
4488         'shortname' => 'GMT+10',
4489         'dstshortname' => null,
4490         'longname' => 'GMT-10:00'),
4491     'Etc/GMT+11' => array(
4492         'offset' => -39600000,
4493         'shortname' => 'GMT+11',
4494         'dstshortname' => null,
4495         'longname' => 'GMT-11:00'),
4496     'Etc/GMT+12' => array(
4497         'offset' => -43200000,
4498         'shortname' => 'GMT+12',
4499         'dstshortname' => null,
4500         'longname' => 'GMT-12:00'),
4501     'Etc/GMT+2' => array(
4502         'offset' => -7200000,
4503         'shortname' => 'GMT+2',
4504         'dstshortname' => null,
4505         'longname' => 'GMT-02:00'),
4506     'Etc/GMT+3' => array(
4507         'offset' => -10800000,
4508         'shortname' => 'GMT+3',
4509         'dstshortname' => null,
4510         'longname' => 'GMT-03:00'),
4511     'Etc/GMT+4' => array(
4512         'offset' => -14400000,
4513         'shortname' => 'GMT+4',
4514         'dstshortname' => null,
4515         'longname' => 'GMT-04:00'),
4516     'Etc/GMT+5' => array(
4517         'offset' => -18000000,
4518         'shortname' => 'GMT+5',
4519         'dstshortname' => null,
4520         'longname' => 'GMT-05:00'),
4521     'Etc/GMT+6' => array(
4522         'offset' => -21600000,
4523         'shortname' => 'GMT+6',
4524         'dstshortname' => null,
4525         'longname' => 'GMT-06:00'),
4526     'Etc/GMT+7' => array(
4527         'offset' => -25200000,
4528         'shortname' => 'GMT+7',
4529         'dstshortname' => null,
4530         'longname' => 'GMT-07:00'),
4531     'Etc/GMT+8' => array(
4532         'offset' => -28800000,
4533         'shortname' => 'GMT+8',
4534         'dstshortname' => null,
4535         'longname' => 'GMT-08:00'),
4536     'Etc/GMT+9' => array(
4537         'offset' => -32400000,
4538         'shortname' => 'GMT+9',
4539         'dstshortname' => null,
4540         'longname' => 'GMT-09:00'),
4541     'Etc/GMT-0' => array(
4542         'offset' => 0,
4543         'shortname' => 'GMT',
4544         'dstshortname' => null,
4545         'longname' => 'GMT+00:00'),
4546     'Etc/GMT-1' => array(
4547         'offset' => 3600000,
4548         'shortname' => 'GMT-1',
4549         'dstshortname' => null,
4550         'longname' => 'GMT+01:00'),
4551     'Etc/GMT-10' => array(
4552         'offset' => 36000000,
4553         'shortname' => 'GMT-10',
4554         'dstshortname' => null,
4555         'longname' => 'GMT+10:00'),
4556     'Etc/GMT-11' => array(
4557         'offset' => 39600000,
4558         'shortname' => 'GMT-11',
4559         'dstshortname' => null,
4560         'longname' => 'GMT+11:00'),
4561     'Etc/GMT-12' => array(
4562         'offset' => 43200000,
4563         'shortname' => 'GMT-12',
4564         'dstshortname' => null,
4565         'longname' => 'GMT+12:00'),
4566     'Etc/GMT-13' => array(
4567         'offset' => 46800000,
4568         'shortname' => 'GMT-13',
4569         'dstshortname' => null,
4570         'longname' => 'GMT+13:00'),
4571     'Etc/GMT-14' => array(
4572         'offset' => 50400000,
4573         'shortname' => 'GMT-14',
4574         'dstshortname' => null,
4575         'longname' => 'GMT+14:00'),
4576     'Etc/GMT-2' => array(
4577         'offset' => 7200000,
4578         'shortname' => 'GMT-2',
4579         'dstshortname' => null,
4580         'longname' => 'GMT+02:00'),
4581     'Etc/GMT-3' => array(
4582         'offset' => 10800000,
4583         'shortname' => 'GMT-3',
4584         'dstshortname' => null,
4585         'longname' => 'GMT+03:00'),
4586     'Etc/GMT-4' => array(
4587         'offset' => 14400000,
4588         'shortname' => 'GMT-4',
4589         'dstshortname' => null,
4590         'longname' => 'GMT+04:00'),
4591     'Etc/GMT-5' => array(
4592         'offset' => 18000000,
4593         'shortname' => 'GMT-5',
4594         'dstshortname' => null,
4595         'longname' => 'GMT+05:00'),
4596     'Etc/GMT-6' => array(
4597         'offset' => 21600000,
4598         'shortname' => 'GMT-6',
4599         'dstshortname' => null,
4600         'longname' => 'GMT+06:00'),
4601     'Etc/GMT-7' => array(
4602         'offset' => 25200000,
4603         'shortname' => 'GMT-7',
4604         'dstshortname' => null,
4605         'longname' => 'GMT+07:00'),
4606     'Etc/GMT-8' => array(
4607         'offset' => 28800000,
4608         'shortname' => 'GMT-8',
4609         'dstshortname' => null,
4610         'longname' => 'GMT+08:00'),
4611     'Etc/GMT-9' => array(
4612         'offset' => 32400000,
4613         'shortname' => 'GMT-9',
4614         'dstshortname' => null,
4615         'longname' => 'GMT+09:00'),
4616     'Etc/GMT0' => array(
4617         'offset' => 0,
4618         'shortname' => 'GMT',
4619         'dstshortname' => null,
4620         'longname' => 'GMT+00:00'),
4621     'Etc/Greenwich' => array(
4622         'offset' => 0,
4623         'shortname' => 'GMT',
4624         'dstshortname' => null,
4625         'longname' => 'Greenwich Mean Time'),
4626     'Etc/UCT' => array(
4627         'offset' => 0,
4628         'shortname' => 'UCT',
4629         'dstshortname' => null,
4630         'longname' => 'Coordinated Universal Time'),
4631     'Etc/UTC' => array(
4632         'offset' => 0,
4633         'shortname' => 'UTC',
4634         'dstshortname' => null,
4635         'longname' => 'Coordinated Universal Time'),
4636     'Etc/Universal' => array(
4637         'offset' => 0,
4638         'shortname' => 'UTC',
4639         'dstshortname' => null,
4640         'longname' => 'Coordinated Universal Time'),
4641     'Etc/Zulu' => array(
4642         'offset' => 0,
4643         'shortname' => 'UTC',
4644         'dstshortname' => null,
4645         'longname' => 'Coordinated Universal Time'),
4646     'Europe/Amsterdam' => array(
4647         'offset' => 3600000,
4648         'shortname' => 'CET',
4649         'dstshortname' => 'CEST',
4650         'longname' => 'Central European Time',
4651         'dstlongname' => 'Central European Summer Time',
4652         'summertimeoffset' => 3600000,
4653         'summertimestartmonth' => 3,
4654         'summertimestartday' => 'lastSun',
4655         'summertimestarttime' => 3600000,
4656         'summertimeendmonth' => 10,
4657         'summertimeendday' => 'lastSun',
4658         'summertimeendtime' => 3600000),
4659     'Europe/Andorra' => array(
4660         'offset' => 3600000,
4661         'shortname' => 'CET',
4662         'dstshortname' => 'CEST',
4663         'longname' => 'Central European Time',
4664         'dstlongname' => 'Central European Summer Time',
4665         'summertimeoffset' => 3600000,
4666         'summertimestartmonth' => 3,
4667         'summertimestartday' => 'lastSun',
4668         'summertimestarttime' => 3600000,
4669         'summertimeendmonth' => 10,
4670         'summertimeendday' => 'lastSun',
4671         'summertimeendtime' => 3600000),
4672     'Europe/Athens' => array(
4673         'offset' => 7200000,
4674         'shortname' => 'EET',
4675         'dstshortname' => 'EEST',
4676         'longname' => 'Eastern European Time',
4677         'dstlongname' => 'Eastern European Summer Time',
4678         'summertimeoffset' => 3600000,
4679         'summertimestartmonth' => 3,
4680         'summertimestartday' => 'lastSun',
4681         'summertimestarttime' => 3600000,
4682         'summertimeendmonth' => 10,
4683         'summertimeendday' => 'lastSun',
4684         'summertimeendtime' => 3600000),
4685     'Europe/Belfast' => array(
4686         'offset' => 0,
4687         'shortname' => 'GMT',
4688         'dstshortname' => 'BST',
4689         'longname' => 'Greenwich Mean Time',
4690         'dstlongname' => 'British Summer Time',
4691         'summertimeoffset' => 3600000,
4692         'summertimestartmonth' => 3,
4693         'summertimestartday' => 'lastSun',
4694         'summertimestarttime' => 3600000,
4695         'summertimeendmonth' => 10,
4696         'summertimeendday' => 'lastSun',
4697         'summertimeendtime' => 3600000),
4698     'Europe/Belgrade' => array(
4699         'offset' => 3600000,
4700         'shortname' => 'CET',
4701         'dstshortname' => 'CEST',
4702         'longname' => 'Central European Time',
4703         'dstlongname' => 'Central European Summer Time',
4704         'summertimeoffset' => 3600000,
4705         'summertimestartmonth' => 3,
4706         'summertimestartday' => 'lastSun',
4707         'summertimestarttime' => 3600000,
4708         'summertimeendmonth' => 10,
4709         'summertimeendday' => 'lastSun',
4710         'summertimeendtime' => 3600000),
4711     'Europe/Berlin' => array(
4712         'offset' => 3600000,
4713         'shortname' => 'CET',
4714         'dstshortname' => 'CEST',
4715         'longname' => 'Central European Time',
4716         'dstlongname' => 'Central European Summer Time',
4717         'summertimeoffset' => 3600000,
4718         'summertimestartmonth' => 3,
4719         'summertimestartday' => 'lastSun',
4720         'summertimestarttime' => 3600000,
4721         'summertimeendmonth' => 10,
4722         'summertimeendday' => 'lastSun',
4723         'summertimeendtime' => 3600000),
4724     'Europe/Bratislava' => array(
4725         'offset' => 3600000,
4726         'shortname' => 'CET',
4727         'dstshortname' => 'CEST',
4728         'longname' => 'Central European Time',
4729         'dstlongname' => 'Central European Summer Time',
4730         'summertimeoffset' => 3600000,
4731         'summertimestartmonth' => 3,
4732         'summertimestartday' => 'lastSun',
4733         'summertimestarttime' => 3600000,
4734         'summertimeendmonth' => 10,
4735         'summertimeendday' => 'lastSun',
4736         'summertimeendtime' => 3600000),
4737     'Europe/Brussels' => array(
4738         'offset' => 3600000,
4739         'shortname' => 'CET',
4740         'dstshortname' => 'CEST',
4741         'longname' => 'Central European Time',
4742         'dstlongname' => 'Central European Summer Time',
4743         'summertimeoffset' => 3600000,
4744         'summertimestartmonth' => 3,
4745         'summertimestartday' => 'lastSun',
4746         'summertimestarttime' => 3600000,
4747         'summertimeendmonth' => 10,
4748         'summertimeendday' => 'lastSun',
4749         'summertimeendtime' => 3600000),
4750     'Europe/Bucharest' => array(
4751         'offset' => 7200000,
4752         'shortname' => 'EET',
4753         'dstshortname' => 'EEST',
4754         'longname' => 'Eastern European Time',
4755         'dstlongname' => 'Eastern European Summer Time',
4756         'summertimeoffset' => 3600000,
4757         'summertimestartmonth' => 3,
4758         'summertimestartday' => 'lastSun',
4759         'summertimestarttime' => 3600000,
4760         'summertimeendmonth' => 10,
4761         'summertimeendday' => 'lastSun',
4762         'summertimeendtime' => 3600000),
4763     'Europe/Budapest' => array(
4764         'offset' => 3600000,
4765         'shortname' => 'CET',
4766         'dstshortname' => 'CEST',
4767         'longname' => 'Central European Time',
4768         'dstlongname' => 'Central European Summer Time',
4769         'summertimeoffset' => 3600000,
4770         'summertimestartmonth' => 3,
4771         'summertimestartday' => 'lastSun',
4772         'summertimestarttime' => 3600000,
4773         'summertimeendmonth' => 10,
4774         'summertimeendday' => 'lastSun',
4775         'summertimeendtime' => 3600000),
4776     'Europe/Chisinau' => array(
4777         'offset' => 7200000,
4778         'shortname' => 'EET',
4779         'dstshortname' => 'EEST',
4780         'longname' => 'Eastern European Time',
4781         'dstlongname' => 'Eastern European Summer Time',
4782         'summertimeoffset' => 3600000,
4783         'summertimestartmonth' => 3,
4784         'summertimestartday' => 'lastSun',
4785         'summertimestarttime' => 3600000,
4786         'summertimeendmonth' => 10,
4787         'summertimeendday' => 'lastSun',
4788         'summertimeendtime' => 3600000),
4789     'Europe/Copenhagen' => array(
4790         'offset' => 3600000,
4791         'shortname' => 'CET',
4792         'dstshortname' => 'CEST',
4793         'longname' => 'Central European Time',
4794         'dstlongname' => 'Central European Summer Time',
4795         'summertimeoffset' => 3600000,
4796         'summertimestartmonth' => 3,
4797         'summertimestartday' => 'lastSun',
4798         'summertimestarttime' => 3600000,
4799         'summertimeendmonth' => 10,
4800         'summertimeendday' => 'lastSun',
4801         'summertimeendtime' => 3600000),
4802     'Europe/Dublin' => array(
4803         'offset' => 0,
4804         'shortname' => 'GMT',
4805         'dstshortname' => 'IST',
4806         'longname' => 'Greenwich Mean Time',
4807         'dstlongname' => 'Irish Summer Time',
4808         'summertimeoffset' => 3600000,
4809         'summertimestartmonth' => 3,
4810         'summertimestartday' => 'lastSun',
4811         'summertimestarttime' => 3600000,
4812         'summertimeendmonth' => 10,
4813         'summertimeendday' => 'lastSun',
4814         'summertimeendtime' => 3600000),
4815     'Europe/Gibraltar' => array(
4816         'offset' => 3600000,
4817         'shortname' => 'CET',
4818         'dstshortname' => 'CEST',
4819         'longname' => 'Central European Time',
4820         'dstlongname' => 'Central European Summer Time',
4821         'summertimeoffset' => 3600000,
4822         'summertimestartmonth' => 3,
4823         'summertimestartday' => 'lastSun',
4824         'summertimestarttime' => 3600000,
4825         'summertimeendmonth' => 10,
4826         'summertimeendday' => 'lastSun',
4827         'summertimeendtime' => 3600000),
4828     'Europe/Guernsey' => array(
4829         'offset' => 0,
4830         'shortname' => 'GMT',
4831         'dstshortname' => 'BST',
4832         'longname' => 'Greenwich Mean Time',
4833         'dstlongname' => 'British Summer Time',
4834         'summertimeoffset' => 3600000,
4835         'summertimestartmonth' => 3,
4836         'summertimestartday' => 'lastSun',
4837         'summertimestarttime' => 3600000,
4838         'summertimeendmonth' => 10,
4839         'summertimeendday' => 'lastSun',
4840         'summertimeendtime' => 3600000),
4841     'Europe/Helsinki' => array(
4842         'offset' => 7200000,
4843         'shortname' => 'EET',
4844         'dstshortname' => 'EEST',
4845         'longname' => 'Eastern European Time',
4846         'dstlongname' => 'Eastern European Summer Time',
4847         'summertimeoffset' => 3600000,
4848         'summertimestartmonth' => 3,
4849         'summertimestartday' => 'lastSun',
4850         'summertimestarttime' => 3600000,
4851         'summertimeendmonth' => 10,
4852         'summertimeendday' => 'lastSun',
4853         'summertimeendtime' => 3600000),
4854     'Europe/Isle_of_Man' => array(
4855         'offset' => 0,
4856         'shortname' => 'GMT',
4857         'dstshortname' => 'BST',
4858         'longname' => 'Greenwich Mean Time',
4859         'dstlongname' => 'British Summer Time',
4860         'summertimeoffset' => 3600000,
4861         'summertimestartmonth' => 3,
4862         'summertimestartday' => 'lastSun',
4863         'summertimestarttime' => 3600000,
4864         'summertimeendmonth' => 10,
4865         'summertimeendday' => 'lastSun',
4866         'summertimeendtime' => 3600000),
4867     'Europe/Istanbul' => array(
4868         'offset' => 7200000,
4869         'shortname' => 'EET',
4870         'dstshortname' => 'EEST',
4871         'longname' => 'Eastern European Time',
4872         'dstlongname' => 'Eastern European Summer Time',
4873         'summertimeoffset' => 3600000,
4874         'summertimestartmonth' => 3,
4875         'summertimestartday' => 'lastSun',
4876         'summertimestarttime' => 3600000,
4877         'summertimeendmonth' => 10,
4878         'summertimeendday' => 'lastSun',
4879         'summertimeendtime' => 3600000),
4880     'Europe/Jersey' => array(
4881         'offset' => 0,
4882         'shortname' => 'GMT',
4883         'dstshortname' => 'BST',
4884         'longname' => 'Greenwich Mean Time',
4885         'dstlongname' => 'British Summer Time',
4886         'summertimeoffset' => 3600000,
4887         'summertimestartmonth' => 3,
4888         'summertimestartday' => 'lastSun',
4889         'summertimestarttime' => 3600000,
4890         'summertimeendmonth' => 10,
4891         'summertimeendday' => 'lastSun',
4892         'summertimeendtime' => 3600000),
4893     'Europe/Kaliningrad' => array(
4894         'offset' => 7200000,
4895         'shortname' => 'EET',
4896         'dstshortname' => 'EEST',
4897         'longname' => 'Eastern European Time',
4898         'dstlongname' => 'Eastern European Summer Time',
4899         'summertimeoffset' => 3600000,
4900         'summertimestartmonth' => 3,
4901         'summertimestartday' => 'lastSun',
4902         'summertimestarttime' => 0,
4903         'summertimeendmonth' => 10,
4904         'summertimeendday' => 'lastSun',
4905         'summertimeendtime' => 0),
4906     'Europe/Kiev' => array(
4907         'offset' => 7200000,
4908         'shortname' => 'EET',
4909         'dstshortname' => 'EEST',
4910         'longname' => 'Eastern European Time',
4911         'dstlongname' => 'Eastern European Summer Time',
4912         'summertimeoffset' => 3600000,
4913         'summertimestartmonth' => 3,
4914         'summertimestartday' => 'lastSun',
4915         'summertimestarttime' => 3600000,
4916         'summertimeendmonth' => 10,
4917         'summertimeendday' => 'lastSun',
4918         'summertimeendtime' => 3600000),
4919     'Europe/Lisbon' => array(
4920         'offset' => 0,
4921         'shortname' => 'WET',
4922         'dstshortname' => 'WEST',
4923         'longname' => 'Western European Time',
4924         'dstlongname' => 'Western European Summer Time',
4925         'summertimeoffset' => 3600000,
4926         'summertimestartmonth' => 3,
4927         'summertimestartday' => 'lastSun',
4928         'summertimestarttime' => 3600000,
4929         'summertimeendmonth' => 10,
4930         'summertimeendday' => 'lastSun',
4931         'summertimeendtime' => 3600000),
4932     'Europe/Ljubljana' => array(
4933         'offset' => 3600000,
4934         'shortname' => 'CET',
4935         'dstshortname' => 'CEST',
4936         'longname' => 'Central European Time',
4937         'dstlongname' => 'Central European Summer Time',
4938         'summertimeoffset' => 3600000,
4939         'summertimestartmonth' => 3,
4940         'summertimestartday' => 'lastSun',
4941         'summertimestarttime' => 3600000,
4942         'summertimeendmonth' => 10,
4943         'summertimeendday' => 'lastSun',
4944         'summertimeendtime' => 3600000),
4945     'Europe/London' => array(
4946         'offset' => 0,
4947         'shortname' => 'GMT',
4948         'dstshortname' => 'BST',
4949         'longname' => 'Greenwich Mean Time',
4950         'dstlongname' => 'British Summer Time',
4951         'summertimeoffset' => 3600000,
4952         'summertimestartmonth' => 3,
4953         'summertimestartday' => 'lastSun',
4954         'summertimestarttime' => 3600000,
4955         'summertimeendmonth' => 10,
4956         'summertimeendday' => 'lastSun',
4957         'summertimeendtime' => 3600000),
4958     'Europe/Luxembourg' => array(
4959         'offset' => 3600000,
4960         'shortname' => 'CET',
4961         'dstshortname' => 'CEST',
4962         'longname' => 'Central European Time',
4963         'dstlongname' => 'Central European Summer Time',
4964         'summertimeoffset' => 3600000,
4965         'summertimestartmonth' => 3,
4966         'summertimestartday' => 'lastSun',
4967         'summertimestarttime' => 3600000,
4968         'summertimeendmonth' => 10,
4969         'summertimeendday' => 'lastSun',
4970         'summertimeendtime' => 3600000),
4971     'Europe/Madrid' => array(
4972         'offset' => 3600000,
4973         'shortname' => 'CET',
4974         'dstshortname' => 'CEST',
4975         'longname' => 'Central European Time',
4976         'dstlongname' => 'Central European Summer Time',
4977         'summertimeoffset' => 3600000,
4978         'summertimestartmonth' => 3,
4979         'summertimestartday' => 'lastSun',
4980         'summertimestarttime' => 3600000,
4981         'summertimeendmonth' => 10,
4982         'summertimeendday' => 'lastSun',
4983         'summertimeendtime' => 3600000),
4984     'Europe/Malta' => array(
4985         'offset' => 3600000,
4986         'shortname' => 'CET',
4987         'dstshortname' => 'CEST',
4988         'longname' => 'Central European Time',
4989         'dstlongname' => 'Central European Summer Time',
4990         'summertimeoffset' => 3600000,
4991         'summertimestartmonth' => 3,
4992         'summertimestartday' => 'lastSun',
4993         'summertimestarttime' => 3600000,
4994         'summertimeendmonth' => 10,
4995         'summertimeendday' => 'lastSun',
4996         'summertimeendtime' => 3600000),
4997     'Europe/Mariehamn' => array(
4998         'offset' => 7200000,
4999         'shortname' => 'EET',
5000         'dstshortname' => 'EEST',
5001         'longname' => 'Eastern European Time',
5002         'dstlongname' => 'Eastern European Summer Time',
5003         'summertimeoffset' => 3600000,
5004         'summertimestartmonth' => 3,
5005         'summertimestartday' => 'lastSun',
5006         'summertimestarttime' => 3600000,
5007         'summertimeendmonth' => 10,
5008         'summertimeendday' => 'lastSun',
5009         'summertimeendtime' => 3600000),
5010     'Europe/Minsk' => array(
5011         'offset' => 7200000,
5012         'shortname' => 'EET',
5013         'dstshortname' => 'EEST',
5014         'longname' => 'Eastern European Time',
5015         'dstlongname' => 'Eastern European Summer Time',
5016         'summertimeoffset' => 3600000,
5017         'summertimestartmonth' => 3,
5018         'summertimestartday' => 'lastSun',
5019         'summertimestarttime' => 0,
5020         'summertimeendmonth' => 10,
5021         'summertimeendday' => 'lastSun',
5022         'summertimeendtime' => 0),
5023     'Europe/Monaco' => array(
5024         'offset' => 3600000,
5025         'shortname' => 'CET',
5026         'dstshortname' => 'CEST',
5027         'longname' => 'Central European Time',
5028         'dstlongname' => 'Central European Summer Time',
5029         'summertimeoffset' => 3600000,
5030         'summertimestartmonth' => 3,
5031         'summertimestartday' => 'lastSun',
5032         'summertimestarttime' => 3600000,
5033         'summertimeendmonth' => 10,
5034         'summertimeendday' => 'lastSun',
5035         'summertimeendtime' => 3600000),
5036     'Europe/Moscow' => array(
5037         'offset' => 10800000,
5038         'shortname' => 'MSK',
5039         'dstshortname' => 'MSD',
5040         'longname' => 'Moscow Standard Time',
5041         'dstlongname' => 'Moscow Daylight Time',
5042         'summertimeoffset' => 3600000,
5043         'summertimestartmonth' => 3,
5044         'summertimestartday' => 'lastSun',
5045         'summertimestarttime' => -3600000,
5046         'summertimeendmonth' => 10,
5047         'summertimeendday' => 'lastSun',
5048         'summertimeendtime' => -3600000),
5049     'Europe/Nicosia' => array(
5050         'offset' => 7200000,
5051         'shortname' => 'EET',
5052         'dstshortname' => 'EEST',
5053         'longname' => 'Eastern European Time',
5054         'dstlongname' => 'Eastern European Summer Time',
5055         'summertimeoffset' => 3600000,
5056         'summertimestartmonth' => 3,
5057         'summertimestartday' => 'lastSun',
5058         'summertimestarttime' => 3600000,
5059         'summertimeendmonth' => 10,
5060         'summertimeendday' => 'lastSun',
5061         'summertimeendtime' => 3600000),
5062     'Europe/Oslo' => array(
5063         'offset' => 3600000,
5064         'shortname' => 'CET',
5065         'dstshortname' => 'CEST',
5066         'longname' => 'Central European Time',
5067         'dstlongname' => 'Central European Summer Time',
5068         'summertimeoffset' => 3600000,
5069         'summertimestartmonth' => 3,
5070         'summertimestartday' => 'lastSun',
5071         'summertimestarttime' => 3600000,
5072         'summertimeendmonth' => 10,
5073         'summertimeendday' => 'lastSun',
5074         'summertimeendtime' => 3600000),
5075     'Europe/Paris' => array(
5076         'offset' => 3600000,
5077         'shortname' => 'CET',
5078         'dstshortname' => 'CEST',
5079         'longname' => 'Central European Time',
5080         'dstlongname' => 'Central European Summer Time',
5081         'summertimeoffset' => 3600000,
5082         'summertimestartmonth' => 3,
5083         'summertimestartday' => 'lastSun',
5084         'summertimestarttime' => 3600000,
5085         'summertimeendmonth' => 10,
5086         'summertimeendday' => 'lastSun',
5087         'summertimeendtime' => 3600000),
5088     'Europe/Podgorica' => array(
5089         'offset' => 3600000,
5090         'shortname' => 'CET',
5091         'dstshortname' => 'CEST',
5092         'longname' => 'Central European Time',
5093         'dstlongname' => 'Central European Summer Time',
5094         'summertimeoffset' => 3600000,
5095         'summertimestartmonth' => 3,
5096         'summertimestartday' => 'lastSun',
5097         'summertimestarttime' => 3600000,
5098         'summertimeendmonth' => 10,
5099         'summertimeendday' => 'lastSun',
5100         'summertimeendtime' => 3600000),
5101     'Europe/Prague' => array(
5102         'offset' => 3600000,
5103         'shortname' => 'CET',
5104         'dstshortname' => 'CEST',
5105         'longname' => 'Central European Time',
5106         'dstlongname' => 'Central European Summer Time',
5107         'summertimeoffset' => 3600000,
5108         'summertimestartmonth' => 3,
5109         'summertimestartday' => 'lastSun',
5110         'summertimestarttime' => 3600000,
5111         'summertimeendmonth' => 10,
5112         'summertimeendday' => 'lastSun',
5113         'summertimeendtime' => 3600000),
5114     'Europe/Riga' => array(
5115         'offset' => 7200000,
5116         'shortname' => 'EET',
5117         'dstshortname' => 'EEST',
5118         'longname' => 'Eastern European Time',
5119         'dstlongname' => 'Eastern European Summer Time',
5120         'summertimeoffset' => 3600000,
5121         'summertimestartmonth' => 3,
5122         'summertimestartday' => 'lastSun',
5123         'summertimestarttime' => 3600000,
5124         'summertimeendmonth' => 10,
5125         'summertimeendday' => 'lastSun',
5126         'summertimeendtime' => 3600000),
5127     'Europe/Rome' => array(
5128         'offset' => 3600000,
5129         'shortname' => 'CET',
5130         'dstshortname' => 'CEST',
5131         'longname' => 'Central European Time',
5132         'dstlongname' => 'Central European Summer Time',
5133         'summertimeoffset' => 3600000,
5134         'summertimestartmonth' => 3,
5135         'summertimestartday' => 'lastSun',
5136         'summertimestarttime' => 3600000,
5137         'summertimeendmonth' => 10,
5138         'summertimeendday' => 'lastSun',
5139         'summertimeendtime' => 3600000),
5140     'Europe/Samara' => array(
5141         'offset' => 14400000,
5142         'shortname' => 'SAMT',
5143         'dstshortname' => 'SAMST',
5144         'longname' => 'Samara Time',
5145         'dstlongname' => 'Samara Summer Time',
5146         'summertimeoffset' => 3600000,
5147         'summertimestartmonth' => 3,
5148         'summertimestartday' => 'lastSun',
5149         'summertimestarttime' => -7200000,
5150         'summertimeendmonth' => 10,
5151         'summertimeendday' => 'lastSun',
5152         'summertimeendtime' => -7200000),
5153     'Europe/San_Marino' => array(
5154         'offset' => 3600000,
5155         'shortname' => 'CET',
5156         'dstshortname' => 'CEST',
5157         'longname' => 'Central European Time',
5158         'dstlongname' => 'Central European Summer Time',
5159         'summertimeoffset' => 3600000,
5160         'summertimestartmonth' => 3,
5161         'summertimestartday' => 'lastSun',
5162         'summertimestarttime' => 3600000,
5163         'summertimeendmonth' => 10,
5164         'summertimeendday' => 'lastSun',
5165         'summertimeendtime' => 3600000),
5166     'Europe/Sarajevo' => array(
5167         'offset' => 3600000,
5168         'shortname' => 'CET',
5169         'dstshortname' => 'CEST',
5170         'longname' => 'Central European Time',
5171         'dstlongname' => 'Central European Summer Time',
5172         'summertimeoffset' => 3600000,
5173         'summertimestartmonth' => 3,
5174         'summertimestartday' => 'lastSun',
5175         'summertimestarttime' => 3600000,
5176         'summertimeendmonth' => 10,
5177         'summertimeendday' => 'lastSun',
5178         'summertimeendtime' => 3600000),
5179     'Europe/Simferopol' => array(
5180         'offset' => 7200000,
5181         'shortname' => 'EET',
5182         'dstshortname' => 'EEST',
5183         'longname' => 'Eastern European Time',
5184         'dstlongname' => 'Eastern European Summer Time',
5185         'summertimeoffset' => 3600000,
5186         'summertimestartmonth' => 3,
5187         'summertimestartday' => 'lastSun',
5188         'summertimestarttime' => 3600000,
5189         'summertimeendmonth' => 10,
5190         'summertimeendday' => 'lastSun',
5191         'summertimeendtime' => 3600000),
5192     'Europe/Skopje' => array(
5193         'offset' => 3600000,
5194         'shortname' => 'CET',
5195         'dstshortname' => 'CEST',
5196         'longname' => 'Central European Time',
5197         'dstlongname' => 'Central European Summer Time',
5198         'summertimeoffset' => 3600000,
5199         'summertimestartmonth' => 3,
5200         'summertimestartday' => 'lastSun',
5201         'summertimestarttime' => 3600000,
5202         'summertimeendmonth' => 10,
5203         'summertimeendday' => 'lastSun',
5204         'summertimeendtime' => 3600000),
5205     'Europe/Sofia' => array(
5206         'offset' => 7200000,
5207         'shortname' => 'EET',
5208         'dstshortname' => 'EEST',
5209         'longname' => 'Eastern European Time',
5210         'dstlongname' => 'Eastern European Summer Time',
5211         'summertimeoffset' => 3600000,
5212         'summertimestartmonth' => 3,
5213         'summertimestartday' => 'lastSun',
5214         'summertimestarttime' => 3600000,
5215         'summertimeendmonth' => 10,
5216         'summertimeendday' => 'lastSun',
5217         'summertimeendtime' => 3600000),
5218     'Europe/Stockholm' => array(
5219         'offset' => 3600000,
5220         'shortname' => 'CET',
5221         'dstshortname' => 'CEST',
5222         'longname' => 'Central European Time',
5223         'dstlongname' => 'Central European Summer Time',
5224         'summertimeoffset' => 3600000,
5225         'summertimestartmonth' => 3,
5226         'summertimestartday' => 'lastSun',
5227         'summertimestarttime' => 3600000,
5228         'summertimeendmonth' => 10,
5229         'summertimeendday' => 'lastSun',
5230         'summertimeendtime' => 3600000),
5231     'Europe/Tallinn' => array(
5232         'offset' => 7200000,
5233         'shortname' => 'EET',
5234         'dstshortname' => 'EEST',
5235         'longname' => 'Eastern European Time',
5236         'summertimeoffset' => 3600000,
5237         'summertimestartmonth' => 3,
5238         'summertimestartday' => 'lastSun',
5239         'summertimestarttime' => 3600000,
5240         'summertimeendmonth' => 10,
5241         'summertimeendday' => 'lastSun',
5242         'summertimeendtime' => 3600000),
5243     'Europe/Tirane' => array(
5244         'offset' => 3600000,
5245         'shortname' => 'CET',
5246         'dstshortname' => 'CEST',
5247         'longname' => 'Central European Time',
5248         'dstlongname' => 'Central European Summer Time',
5249         'summertimeoffset' => 3600000,
5250         'summertimestartmonth' => 3,
5251         'summertimestartday' => 'lastSun',
5252         'summertimestarttime' => 3600000,
5253         'summertimeendmonth' => 10,
5254         'summertimeendday' => 'lastSun',
5255         'summertimeendtime' => 3600000),
5256     'Europe/Tiraspol' => array(
5257         'offset' => 7200000,
5258         'shortname' => 'EET',
5259         'dstshortname' => 'EEST',
5260         'longname' => 'Eastern European Time',
5261         'dstlongname' => 'Eastern European Summer Time',
5262         'summertimeoffset' => 3600000,
5263         'summertimestartmonth' => 3,
5264         'summertimestartday' => 'lastSun',
5265         'summertimestarttime' => 3600000,
5266         'summertimeendmonth' => 10,
5267         'summertimeendday' => 'lastSun',
5268         'summertimeendtime' => 3600000),
5269     'Europe/Uzhgorod' => array(
5270         'offset' => 7200000,
5271         'shortname' => 'EET',
5272         'dstshortname' => 'EEST',
5273         'longname' => 'Eastern European Time',
5274         'dstlongname' => 'Eastern European Summer Time',
5275         'summertimeoffset' => 3600000,
5276         'summertimestartmonth' => 3,
5277         'summertimestartday' => 'lastSun',
5278         'summertimestarttime' => 3600000,
5279         'summertimeendmonth' => 10,
5280         'summertimeendday' => 'lastSun',
5281         'summertimeendtime' => 3600000),
5282     'Europe/Vaduz' => array(
5283         'offset' => 3600000,
5284         'shortname' => 'CET',
5285         'dstshortname' => 'CEST',
5286         'longname' => 'Central European Time',
5287         'dstlongname' => 'Central European Summer Time',
5288         'summertimeoffset' => 3600000,
5289         'summertimestartmonth' => 3,
5290         'summertimestartday' => 'lastSun',
5291         'summertimestarttime' => 3600000,
5292         'summertimeendmonth' => 10,
5293         'summertimeendday' => 'lastSun',
5294         'summertimeendtime' => 3600000),
5295     'Europe/Vatican' => array(
5296         'offset' => 3600000,
5297         'shortname' => 'CET',
5298         'dstshortname' => 'CEST',
5299         'longname' => 'Central European Time',
5300         'dstlongname' => 'Central European Summer Time',
5301         'summertimeoffset' => 3600000,
5302         'summertimestartmonth' => 3,
5303         'summertimestartday' => 'lastSun',
5304         'summertimestarttime' => 3600000,
5305         'summertimeendmonth' => 10,
5306         'summertimeendday' => 'lastSun',
5307         'summertimeendtime' => 3600000),
5308     'Europe/Vienna' => array(
5309         'offset' => 3600000,
5310         'shortname' => 'CET',
5311         'dstshortname' => 'CEST',
5312         'longname' => 'Central European Time',
5313         'dstlongname' => 'Central European Summer Time',
5314         'summertimeoffset' => 3600000,
5315         'summertimestartmonth' => 3,
5316         'summertimestartday' => 'lastSun',
5317         'summertimestarttime' => 3600000,
5318         'summertimeendmonth' => 10,
5319         'summertimeendday' => 'lastSun',
5320         'summertimeendtime' => 3600000),
5321     'Europe/Vilnius' => array(
5322         'offset' => 7200000,
5323         'shortname' => 'EET',
5324         'dstshortname' => 'EEST',
5325         'longname' => 'Eastern European Time',
5326         'summertimeoffset' => 3600000,
5327         'summertimestartmonth' => 3,
5328         'summertimestartday' => 'lastSun',
5329         'summertimestarttime' => 3600000,
5330         'summertimeendmonth' => 10,
5331         'summertimeendday' => 'lastSun',
5332         'summertimeendtime' => 3600000),
5333     'Europe/Volgograd' => array(
5334         'offset' => 10800000,
5335         'shortname' => 'VOLT',
5336         'dstshortname' => 'VOLST',
5337         'longname' => 'Volograd Time',
5338         'longname' => 'Volograd Summer Time',
5339         'summertimeoffset' => 3600000,
5340         'summertimestartmonth' => 3,
5341         'summertimestartday' => 'lastSun',
5342         'summertimestarttime' => -3600000,
5343         'summertimeendmonth' => 10,
5344         'summertimeendday' => 'lastSun',
5345         'summertimeendtime' => -3600000),
5346     'Europe/Warsaw' => array(
5347         'offset' => 3600000,
5348         'shortname' => 'CET',
5349         'dstshortname' => 'CEST',
5350         'longname' => 'Central European Time',
5351         'dstlongname' => 'Central European Summer Time',
5352         'summertimeoffset' => 3600000,
5353         'summertimestartmonth' => 3,
5354         'summertimestartday' => 'lastSun',
5355         'summertimestarttime' => 3600000,
5356         'summertimeendmonth' => 10,
5357         'summertimeendday' => 'lastSun',
5358         'summertimeendtime' => 3600000),
5359     'Europe/Zagreb' => array(
5360         'offset' => 3600000,
5361         'shortname' => 'CET',
5362         'dstshortname' => 'CEST',
5363         'longname' => 'Central European Time',
5364         'dstlongname' => 'Central European Summer Time',
5365         'summertimeoffset' => 3600000,
5366         'summertimestartmonth' => 3,
5367         'summertimestartday' => 'lastSun',
5368         'summertimestarttime' => 3600000,
5369         'summertimeendmonth' => 10,
5370         'summertimeendday' => 'lastSun',
5371         'summertimeendtime' => 3600000),
5372     'Europe/Zaporozhye' => array(
5373         'offset' => 7200000,
5374         'shortname' => 'EET',
5375         'dstshortname' => 'EEST',
5376         'longname' => 'Eastern European Time',
5377         'dstlongname' => 'Eastern European Summer Time',
5378         'summertimeoffset' => 3600000,
5379         'summertimestartmonth' => 3,
5380         'summertimestartday' => 'lastSun',
5381         'summertimestarttime' => 3600000,
5382         'summertimeendmonth' => 10,
5383         'summertimeendday' => 'lastSun',
5384         'summertimeendtime' => 3600000),
5385     'Europe/Zurich' => array(
5386         'offset' => 3600000,
5387         'shortname' => 'CET',
5388         'dstshortname' => 'CEST',
5389         'longname' => 'Central European Time',
5390         'dstlongname' => 'Central European Summer Time',
5391         'summertimeoffset' => 3600000,
5392         'summertimestartmonth' => 3,
5393         'summertimestartday' => 'lastSun',
5394         'summertimestarttime' => 3600000,
5395         'summertimeendmonth' => 10,
5396         'summertimeendday' => 'lastSun',
5397         'summertimeendtime' => 3600000),
5398     'GB' => array(
5399         'offset' => 0,
5400         'shortname' => 'GMT',
5401         'dstshortname' => 'BST',
5402         'longname' => 'Greenwich Mean Time',
5403         'dstlongname' => 'British Summer Time',
5404         'summertimeoffset' => 3600000,
5405         'summertimestartmonth' => 3,
5406         'summertimestartday' => 'lastSun',
5407         'summertimestarttime' => 3600000,
5408         'summertimeendmonth' => 10,
5409         'summertimeendday' => 'lastSun',
5410         'summertimeendtime' => 3600000),
5411     'GB-Eire' => array(
5412         'offset' => 0,
5413         'shortname' => 'GMT',
5414         'dstshortname' => 'BST',
5415         'longname' => 'Greenwich Mean Time',
5416         'dstlongname' => 'British Summer Time',
5417         'summertimeoffset' => 3600000,
5418         'summertimestartmonth' => 3,
5419         'summertimestartday' => 'lastSun',
5420         'summertimestarttime' => 3600000,
5421         'summertimeendmonth' => 10,
5422         'summertimeendday' => 'lastSun',
5423         'summertimeendtime' => 3600000),
5424     'GMT' => array(
5425         'offset' => 0,
5426         'shortname' => 'GMT',
5427         'dstshortname' => null,
5428         'longname' => 'Greenwich Mean Time'),
5429     'GMT+0' => array(
5430         'offset' => 0,
5431         'shortname' => 'GMT+0',
5432         'dstshortname' => null),
5433     'GMT+00:00' => array(
5434         'offset' => 0,
5435         'shortname' => 'GMT+00:00',
5436         'dstshortname' => null,
5437         'longname' => 'GMT+00:00'),
5438     'GMT+01:00' => array(
5439         'offset' => 3600000,
5440         'shortname' => 'GMT+01:00',
5441         'dstshortname' => null,
5442         'longname' => 'GMT+01:00'),
5443     'GMT+02:00' => array(
5444         'offset' => 7200000,
5445         'shortname' => 'GMT+02:00',
5446         'dstshortname' => null,
5447         'longname' => 'GMT+02:00'),
5448     'GMT+03:00' => array(
5449         'offset' => 10800000,
5450         'shortname' => 'GMT+03:00',
5451         'dstshortname' => null,
5452         'longname' => 'GMT+03:00'),
5453     'GMT+04:00' => array(
5454         'offset' => 14400000,
5455         'shortname' => 'GMT+04:00',
5456         'dstshortname' => null,
5457         'longname' => 'GMT+04:00'),
5458     'GMT+05:00' => array(
5459         'offset' => 18000000,
5460         'shortname' => 'GMT+05:00',
5461         'dstshortname' => null,
5462         'longname' => 'GMT+05:00'),
5463     'GMT+06:00' => array(
5464         'offset' => 21600000,
5465         'shortname' => 'GMT+06:00',
5466         'dstshortname' => null,
5467         'longname' => 'GMT+06:00'),
5468     'GMT+07:00' => array(
5469         'offset' => 25200000,
5470         'shortname' => 'GMT+07:00',
5471         'dstshortname' => null,
5472         'longname' => 'GMT+07:00'),
5473     'GMT+08:00' => array(
5474         'offset' => 28800000,
5475         'shortname' => 'GMT+08:00',
5476         'dstshortname' => null,
5477         'longname' => 'GMT+08:00'),
5478     'GMT+09:00' => array(
5479         'offset' => 32400000,
5480         'shortname' => 'GMT+09:00',
5481         'dstshortname' => null,
5482         'longname' => 'GMT+09:00'),
5483     'GMT+1' => array(
5484         'offset' => 3600000,
5485         'shortname' => 'GMT+1',
5486         'dstshortname' => null),
5487     'GMT+10' => array(
5488         'offset' => 36000000,
5489         'shortname' => 'GMT+10',
5490         'dstshortname' => null),
5491     'GMT+10:00' => array(
5492         'offset' => 36000000,
5493         'shortname' => 'GMT+10:00',
5494         'dstshortname' => null,
5495         'longname' => 'GMT+10:00'),
5496     'GMT+11' => array(
5497         'offset' => 39600000,
5498         'shortname' => 'GMT+11',
5499         'dstshortname' => null),
5500     'GMT+11:00' => array(
5501         'offset' => 39600000,
5502         'shortname' => 'GMT+11:00',
5503         'dstshortname' => null,
5504         'longname' => 'GMT+11:00'),
5505     'GMT+12' => array(
5506         'offset' => 43200000,
5507         'shortname' => 'GMT+12',
5508         'dstshortname' => null),
5509     'GMT+12:00' => array(
5510         'offset' => 43200000,
5511         'shortname' => 'GMT+12:00',
5512         'dstshortname' => null,
5513         'longname' => 'GMT+12:00'),
5514     'GMT+13' => array(
5515         'offset' => 46800000,
5516         'shortname' => 'GMT+13',
5517         'dstshortname' => null),
5518     'GMT+13:00' => array(
5519         'offset' => 46800000,
5520         'shortname' => 'GMT+13:00',
5521         'dstshortname' => null,
5522         'longname' => 'GMT+13:00'),
5523     'GMT+14' => array(
5524         'offset' => 50400000,
5525         'shortname' => 'GMT+14',
5526         'dstshortname' => null),
5527     'GMT+14:00' => array(
5528         'offset' => 50400000,
5529         'shortname' => 'GMT+14:00',
5530         'dstshortname' => null,
5531         'longname' => 'GMT+14:00'),
5532     'GMT+2' => array(
5533         'offset' => 7200000,
5534         'shortname' => 'GMT+2',
5535         'dstshortname' => null),
5536     'GMT+3' => array(
5537         'offset' => 10800000,
5538         'shortname' => 'GMT+3',
5539         'dstshortname' => null),
5540     'GMT+4' => array(
5541         'offset' => 14400000,
5542         'shortname' => 'GMT+4',
5543         'dstshortname' => null),
5544     'GMT+5' => array(
5545         'offset' => 18000000,
5546         'shortname' => 'GMT+5',
5547         'dstshortname' => null),
5548     'GMT+6' => array(
5549         'offset' => 21600000,
5550         'shortname' => 'GMT+6',
5551         'dstshortname' => null),
5552     'GMT+7' => array(
5553         'offset' => 25200000,
5554         'shortname' => 'GMT+7',
5555         'dstshortname' => null),
5556     'GMT+8' => array(
5557         'offset' => 28800000,
5558         'shortname' => 'GMT+8',
5559         'dstshortname' => null),
5560     'GMT+9' => array(
5561         'offset' => 32400000,
5562         'shortname' => 'GMT+9',
5563         'dstshortname' => null),
5564     'GMT-0' => array(
5565         'offset' => 0,
5566         'shortname' => 'GMT-0',
5567         'dstshortname' => null),
5568     'GMT-00:00' => array(
5569         'offset' => 0,
5570         'shortname' => 'GMT-00:00',
5571         'dstshortname' => null),
5572     'GMT-01:00' => array(
5573         'offset' => -3600000,
5574         'shortname' => 'GMT-01:00',
5575         'dstshortname' => null,
5576         'longname' => 'GMT-01:00'),
5577     'GMT-02:00' => array(
5578         'offset' => -7200000,
5579         'shortname' => 'GMT-02:00',
5580         'dstshortname' => null,
5581         'longname' => 'GMT-02:00'),
5582     'GMT-03:00' => array(
5583         'offset' => -10800000,
5584         'shortname' => 'GMT-03:00',
5585         'dstshortname' => null,
5586         'longname' => 'GMT-03:00'),
5587     'GMT-04:00' => array(
5588         'offset' => -14400000,
5589         'shortname' => 'GMT-04:00',
5590         'dstshortname' => null,
5591         'longname' => 'GMT-04:00'),
5592     'GMT-05:00' => array(
5593         'offset' => -18000000,
5594         'shortname' => 'GMT-05:00',
5595         'dstshortname' => null,
5596         'longname' => 'GMT-05:00'),
5597     'GMT-06:00' => array(
5598         'offset' => -21600000,
5599         'shortname' => 'GMT-06:00',
5600         'dstshortname' => null,
5601         'longname' => 'GMT-06:00'),
5602     'GMT-07:00' => array(
5603         'offset' => -25200000,
5604         'shortname' => 'GMT-07:00',
5605         'dstshortname' => null,
5606         'longname' => 'GMT-07:00'),
5607     'GMT-08:00' => array(
5608         'offset' => -28800000,
5609         'shortname' => 'GMT-08:00',
5610         'dstshortname' => null,
5611         'longname' => 'GMT-08:00'),
5612     'GMT-09:00' => array(
5613         'offset' => -32400000,
5614         'shortname' => 'GMT-09:00',
5615         'dstshortname' => null,
5616         'longname' => 'GMT-09:00'),
5617     'GMT-1' => array(
5618         'offset' => -3600000,
5619         'shortname' => 'GMT-1',
5620         'dstshortname' => null),
5621     'GMT-10' => array(
5622         'offset' => -36000000,
5623         'shortname' => 'GMT-10',
5624         'dstshortname' => null),
5625     'GMT-10:00' => array(
5626         'offset' => -36000000,
5627         'shortname' => 'GMT-10:00',
5628         'dstshortname' => null,
5629         'longname' => 'GMT-10:00'),
5630     'GMT-11' => array(
5631         'offset' => -39600000,
5632         'shortname' => 'GMT-11',
5633         'dstshortname' => null),
5634     'GMT-11:00' => array(
5635         'offset' => -39600000,
5636         'shortname' => 'GMT-11:00',
5637         'dstshortname' => null,
5638         'longname' => 'GMT-11:00'),
5639     'GMT-12' => array(
5640         'offset' => -43200000,
5641         'shortname' => 'GMT-12',
5642         'dstshortname' => null),
5643     'GMT-12:00' => array(
5644         'offset' => -43200000,
5645         'shortname' => 'GMT-12:00',
5646         'dstshortname' => null,
5647         'longname' => 'GMT-12:00'),
5648     'GMT-2' => array(
5649         'offset' => -7200000,
5650         'shortname' => 'GMT-2',
5651         'dstshortname' => null),
5652     'GMT-3' => array(
5653         'offset' => -10800000,
5654         'shortname' => 'GMT-3',
5655         'dstshortname' => null),
5656     'GMT-4' => array(
5657         'offset' => -14400000,
5658         'shortname' => 'GMT-4',
5659         'dstshortname' => null),
5660     'GMT-5' => array(
5661         'offset' => -18000000,
5662         'shortname' => 'GMT-5',
5663         'dstshortname' => null),
5664     'GMT-6' => array(
5665         'offset' => -21600000,
5666         'shortname' => 'GMT-6',
5667         'dstshortname' => null),
5668     'GMT-7' => array(
5669         'offset' => -25200000,
5670         'shortname' => 'GMT-7',
5671         'dstshortname' => null),
5672     'GMT-8' => array(
5673         'offset' => -28800000,
5674         'shortname' => 'GMT-8',
5675         'dstshortname' => null),
5676     'GMT-9' => array(
5677         'offset' => -32400000,
5678         'shortname' => 'GMT-9',
5679         'dstshortname' => null),
5680     'GMT0' => array(
5681         'offset' => 0,
5682         'shortname' => 'GMT',
5683         'dstshortname' => null,
5684         'longname' => 'GMT+00:00'),
5685     'Greenwich' => array(
5686         'offset' => 0,
5687         'shortname' => 'GMT',
5688         'dstshortname' => null,
5689         'longname' => 'Greenwich Mean Time'),
5690     'HST' => array(
5691         'offset' => -36000000,
5692         'shortname' => 'HST',
5693         'dstshortname' => null,
5694         'longname' => 'Hawaii Standard Time'),
5695     'Hongkong' => array(
5696         'offset' => 28800000,
5697         'shortname' => 'HKT',
5698         'dstshortname' => null,
5699         'longname' => 'Hong Kong Time'),
5700     'Iceland' => array(
5701         'offset' => 0,
5702         'shortname' => 'GMT',
5703         'dstshortname' => null,
5704         'longname' => 'Greenwich Mean Time'),
5705     'Indian/Antananarivo' => array(
5706         'offset' => 10800000,
5707         'shortname' => 'EAT',
5708         'dstshortname' => null,
5709         'longname' => 'Eastern African Time'),
5710     'Indian/Chagos' => array(
5711         'offset' => 21600000,
5712         'shortname' => 'IOT',
5713         'dstshortname' => null,
5714         'longname' => 'Indian Ocean Territory Time'),
5715     'Indian/Christmas' => array(
5716         'offset' => 25200000,
5717         'shortname' => 'CXT',
5718         'dstshortname' => null,
5719         'longname' => 'Christmas Island Time'),
5720     'Indian/Cocos' => array(
5721         'offset' => 23400000,
5722         'shortname' => 'CCT',
5723         'dstshortname' => null,
5724         'longname' => 'Cocos Islands Time'),
5725     'Indian/Comoro' => array(
5726         'offset' => 10800000,
5727         'shortname' => 'EAT',
5728         'dstshortname' => null,
5729         'longname' => 'Eastern African Time'),
5730     'Indian/Kerguelen' => array(
5731         'offset' => 18000000,
5732         'shortname' => 'TFT',
5733         'dstshortname' => null,
5734         'longname' => 'French Southern & Antarctic Lands Time'),
5735     'Indian/Mahe' => array(
5736         'offset' => 14400000,
5737         'shortname' => 'SCT',
5738         'dstshortname' => null,
5739         'longname' => 'Seychelles Time'),
5740     'Indian/Maldives' => array(
5741         'offset' => 18000000,
5742         'shortname' => 'MVT',
5743         'dstshortname' => null,
5744         'longname' => 'Maldives Time'),
5745     'Indian/Mauritius' => array(
5746         'offset' => 14400000,
5747         'shortname' => 'MUT',
5748         'dstshortname' => null,
5749         'longname' => 'Mauritius Time'),
5750     'Indian/Mayotte' => array(
5751         'offset' => 10800000,
5752         'shortname' => 'EAT',
5753         'dstshortname' => null,
5754         'longname' => 'Eastern African Time'),
5755     'Indian/Reunion' => array(
5756         'offset' => 14400000,
5757         'shortname' => 'RET',
5758         'dstshortname' => null,
5759         'longname' => 'Reunion Time'),
5760     'Iran' => array(
5761         'offset' => 12600000,
5762         'shortname' => 'IRST',
5763         'dstshortname' => 'IRDT',
5764         'longname' => 'Iran Time',
5765         'dstlongname' => 'Iran Summer Time',
5766         'summertimeoffset' => 3600000,
5767         'summertimestartmonth' => 3,
5768         'summertimestartday' => '21',
5769         'summertimestarttime' => -12600000,
5770         'summertimeendmonth' => 9,
5771         'summertimeendday' => '21',
5772         'summertimeendtime' => -16200000),
5773     'Israel' => array(
5774         'offset' => 7200000,
5775         'shortname' => 'IST',
5776         'dstshortname' => 'IDT',
5777         'longname' => 'Israel Standard Time',
5778         'dstlongname' => 'Israel Daylight Time',
5779         'summertimeoffset' => 3600000,
5780         'summertimestartmonth' => 3,
5781         'summertimestartday' => 'Fri>=26',
5782         'summertimestarttime' => 0,
5783         'summertimeendmonth' => 10,
5784         'summertimeendday' => '5',
5785         'summertimeendtime' => -3600000),
5786     'Jamaica' => array(
5787         'offset' => -18000000,
5788         'shortname' => 'EST',
5789         'dstshortname' => null,
5790         'longname' => 'Eastern Standard Time'),
5791     'Japan' => array(
5792         'offset' => 32400000,
5793         'shortname' => 'JST',
5794         'dstshortname' => null,
5795         'longname' => 'Japan Standard Time'),
5796     'Kwajalein' => array(
5797         'offset' => 43200000,
5798         'shortname' => 'MHT',
5799         'dstshortname' => null,
5800         'longname' => 'Marshall Islands Time'),
5801     'Libya' => array(
5802         'offset' => 7200000,
5803         'shortname' => 'EET',
5804         'dstshortname' => null,
5805         'longname' => 'Eastern European Time'),
5806     'MET' => array(
5807         'offset' => 3600000,
5808         'shortname' => 'MET',
5809         'dstshortname' => 'MEST',
5810         'longname' => 'Middle Europe Time',
5811         'dstlongname' => 'Middle Europe Summer Time',
5812         'summertimeoffset' => 3600000,
5813         'summertimestartmonth' => 3,
5814         'summertimestartday' => 'lastSun',
5815         'summertimestarttime' => 3600000,
5816         'summertimeendmonth' => 10,
5817         'summertimeendday' => 'lastSun',
5818         'summertimeendtime' => 3600000),
5819     'MST' => array(
5820         'offset' => -25200000,
5821         'shortname' => 'MST',
5822         'dstshortname' => null,
5823         'longname' => 'Mountain Standard Time',
5824         'dstlongname' => 'Mountain Daylight Time'),
5825     'MST7MDT' => array(
5826         'offset' => -25200000,
5827         'shortname' => 'MST',
5828         'dstshortname' => 'MDT',
5829         'longname' => 'Mountain Standard Time',
5830         'dstlongname' => 'Mountain Daylight Time',
5831         'summertimeoffset' => 3600000,
5832         'summertimestartmonth' => 3,
5833         'summertimestartday' => 'Sun>=8',
5834         'summertimestarttime' => 32400000,
5835         'summertimeendmonth' => 11,
5836         'summertimeendday' => 'Sun>=1',
5837         'summertimeendtime' => 28800000),
5838     'Mexico/BajaNorte' => array(
5839         'offset' => -28800000,
5840         'shortname' => 'PST',
5841         'dstshortname' => 'PDT',
5842         'longname' => 'Pacific Standard Time',
5843         'dstlongname' => 'Pacific Daylight Time',
5844         'summertimeoffset' => 3600000,
5845         'summertimestartmonth' => 4,
5846         'summertimestartday' => 'Sun>=1',
5847         'summertimestarttime' => 36000000,
5848         'summertimeendmonth' => 10,
5849         'summertimeendday' => 'lastSun',
5850         'summertimeendtime' => 32400000),
5851     'Mexico/BajaSur' => array(
5852         'offset' => -25200000,
5853         'shortname' => 'MST',
5854         'dstshortname' => 'MDT',
5855         'longname' => 'Mountain Standard Time',
5856         'dstlongname' => 'Mountain Daylight Time',
5857         'summertimeoffset' => 3600000,
5858         'summertimestartmonth' => 4,
5859         'summertimestartday' => 'Sun>=1',
5860         'summertimestarttime' => 32400000,
5861         'summertimeendmonth' => 10,
5862         'summertimeendday' => 'lastSun',
5863         'summertimeendtime' => 28800000),
5864     'Mexico/General' => array(
5865         'offset' => -21600000,
5866         'shortname' => 'CST',
5867         'dstshortname' => 'CDT',
5868         'longname' => 'Central Standard Time',
5869         'summertimeoffset' => 3600000,
5870         'summertimestartmonth' => 4,
5871         'summertimestartday' => 'Sun>=1',
5872         'summertimestarttime' => 28800000,
5873         'summertimeendmonth' => 10,
5874         'summertimeendday' => 'lastSun',
5875         'summertimeendtime' => 25200000),
5876     'Mideast/Riyadh87' => array(
5877         'offset' => 11224000,
5878         'shortname' => '',
5879         'dstshortname' => null,
5880         'longname' => 'GMT+03:07'),
5881     'Mideast/Riyadh88' => array(
5882         'offset' => 11224000,
5883         'shortname' => '',
5884         'dstshortname' => null,
5885         'longname' => 'GMT+03:07'),
5886     'Mideast/Riyadh89' => array(
5887         'offset' => 11224000,
5888         'shortname' => '',
5889         'dstshortname' => null,
5890         'longname' => 'GMT+03:07'),
5891     'NZ' => array(
5892         'offset' => 43200000,
5893         'shortname' => 'NZST',
5894         'dstshortname' => 'NZDT',
5895         'longname' => 'New Zealand Standard Time',
5896         'dstlongname' => 'New Zealand Daylight Time',
5897         'summertimeoffset' => 3600000,
5898         'summertimestartmonth' => 9,
5899         'summertimestartday' => 'lastSun',
5900         'summertimestarttime' => -36000000,
5901         'summertimeendmonth' => 4,
5902         'summertimeendday' => 'Sun>=1',
5903         'summertimeendtime' => -36000000),
5904     'NZ-CHAT' => array(
5905         'offset' => 45900000,
5906         'shortname' => 'CHAST',
5907         'dstshortname' => 'CHADT',
5908         'longname' => 'Chatham Standard Time',
5909         'dstlongname' => 'Chatham Daylight Time',
5910         'summertimeoffset' => 3600000,
5911         'summertimestartmonth' => 9,
5912         'summertimestartday' => 'lastSun',
5913         'summertimestarttime' => -36000000,
5914         'summertimeendmonth' => 4,
5915         'summertimeendday' => 'Sun>=1',
5916         'summertimeendtime' => -36000000),
5917     'Navajo' => array(
5918         'offset' => -25200000,
5919         'shortname' => 'MST',
5920         'dstshortname' => 'MDT',
5921         'longname' => 'Mountain Standard Time',
5922         'dstlongname' => 'Mountain Daylight Time',
5923         'summertimeoffset' => 3600000,
5924         'summertimestartmonth' => 3,
5925         'summertimestartday' => 'Sun>=8',
5926         'summertimestarttime' => 32400000,
5927         'summertimeendmonth' => 11,
5928         'summertimeendday' => 'Sun>=1',
5929         'summertimeendtime' => 28800000),
5930     'PRC' => array(
5931         'offset' => 28800000,
5932         'shortname' => 'CST',
5933         'dstshortname' => null,
5934         'longname' => 'China Standard Time'),
5935     'PST8PDT' => array(
5936         'offset' => -28800000,
5937         'shortname' => 'PST',
5938         'dstshortname' => 'PDT',
5939         'longname' => 'Pacific Standard Time',
5940         'dstlongname' => 'Pacific Daylight Time',
5941         'summertimeoffset' => 3600000,
5942         'summertimestartmonth' => 3,
5943         'summertimestartday' => 'Sun>=8',
5944         'summertimestarttime' => 36000000,
5945         'summertimeendmonth' => 11,
5946         'summertimeendday' => 'Sun>=1',
5947         'summertimeendtime' => 32400000),
5948     'Pacific/Apia' => array(
5949         'offset' => -39600000,
5950         'shortname' => 'WST',
5951         'dstshortname' => null,
5952         'longname' => 'West Samoa Time'),
5953     'Pacific/Auckland' => array(
5954         'offset' => 43200000,
5955         'shortname' => 'NZST',
5956         'dstshortname' => 'NZDT',
5957         'longname' => 'New Zealand Standard Time',
5958         'dstlongname' => 'New Zealand Daylight Time',
5959         'summertimeoffset' => 3600000,
5960         'summertimestartmonth' => 9,
5961         'summertimestartday' => 'lastSun',
5962         'summertimestarttime' => -36000000,
5963         'summertimeendmonth' => 4,
5964         'summertimeendday' => 'Sun>=1',
5965         'summertimeendtime' => -36000000),
5966     'Pacific/Chatham' => array(
5967         'offset' => 45900000,
5968         'shortname' => 'CHAST',
5969         'dstshortname' => 'CHADT',
5970         'longname' => 'Chatham Standard Time',
5971         'dstlongname' => 'Chatham Daylight Time',
5972         'summertimeoffset' => 3600000,
5973         'summertimestartmonth' => 9,
5974         'summertimestartday' => 'lastSun',
5975         'summertimestarttime' => -36000000,
5976         'summertimeendmonth' => 4,
5977         'summertimeendday' => 'Sun>=1',
5978         'summertimeendtime' => -36000000),
5979     'Pacific/Easter' => array(
5980         'offset' => -21600000,
5981         'shortname' => 'EAST',
5982         'dstshortname' => 'EASST',
5983         'longname' => 'Easter Is. Time',
5984         'dstlongname' => 'Easter Is. Summer Time',
5985         'summertimeoffset' => 3600000,
5986         'summertimestartmonth' => 10,
5987         'summertimestartday' => 'Sun>=9',
5988         'summertimestarttime' => 14400000,
5989         'summertimeendmonth' => 3,
5990         'summertimeendday' => '30',
5991         'summertimeendtime' => 10800000),
5992     'Pacific/Efate' => array(
5993         'offset' => 39600000,
5994         'shortname' => 'VUT',
5995         'dstshortname' => null,
5996         'longname' => 'Vanuatu Time'),
5997     'Pacific/Enderbury' => array(
5998         'offset' => 46800000,
5999         'shortname' => 'PHOT',
6000         'dstshortname' => null,
6001         'longname' => 'Phoenix Is. Time'),
6002     'Pacific/Fakaofo' => array(
6003         'offset' => -36000000,
6004         'shortname' => 'TKT',
6005         'dstshortname' => null,
6006         'longname' => 'Tokelau Time'),
6007     'Pacific/Fiji' => array(
6008         'offset' => 43200000,
6009         'shortname' => 'FJT',
6010         'dstshortname' => null,
6011         'longname' => 'Fiji Time'),
6012     'Pacific/Funafuti' => array(
6013         'offset' => 43200000,
6014         'shortname' => 'TVT',
6015         'dstshortname' => null,
6016         'longname' => 'Tuvalu Time'),
6017     'Pacific/Galapagos' => array(
6018         'offset' => -21600000,
6019         'shortname' => 'GALT',
6020         'dstshortname' => null,
6021         'longname' => 'Galapagos Time'),
6022     'Pacific/Gambier' => array(
6023         'offset' => -32400000,
6024         'shortname' => 'GAMT',
6025         'dstshortname' => null,
6026         'longname' => 'Gambier Time'),
6027     'Pacific/Guadalcanal' => array(
6028         'offset' => 39600000,
6029         'shortname' => 'SBT',
6030         'dstshortname' => null,
6031         'longname' => 'Solomon Is. Time'),
6032     'Pacific/Guam' => array(
6033         'offset' => 36000000,
6034         'shortname' => 'ChST',
6035         'dstshortname' => null,
6036         'longname' => 'Chamorro Standard Time'),
6037     'Pacific/Honolulu' => array(
6038         'offset' => -36000000,
6039         'shortname' => 'HST',
6040         'dstshortname' => null,
6041         'longname' => 'Hawaii Standard Time'),
6042     'Pacific/Johnston' => array(
6043         'offset' => -36000000,
6044         'shortname' => 'HST',
6045         'dstshortname' => null,
6046         'longname' => 'Hawaii Standard Time'),
6047     'Pacific/Kiritimati' => array(
6048         'offset' => 50400000,
6049         'shortname' => 'LINT',
6050         'dstshortname' => null,
6051         'longname' => 'Line Is. Time'),
6052     'Pacific/Kosrae' => array(
6053         'offset' => 39600000,
6054         'shortname' => 'KOST',
6055         'dstshortname' => null,
6056         'longname' => 'Kosrae Time'),
6057     'Pacific/Kwajalein' => array(
6058         'offset' => 43200000,
6059         'shortname' => 'MHT',
6060         'dstshortname' => null,
6061         'longname' => 'Marshall Islands Time'),
6062     'Pacific/Majuro' => array(
6063         'offset' => 43200000,
6064         'shortname' => 'MHT',
6065         'dstshortname' => null,
6066         'longname' => 'Marshall Islands Time'),
6067     'Pacific/Marquesas' => array(
6068         'offset' => -34200000,
6069         'shortname' => 'MART',
6070         'dstshortname' => null,
6071         'longname' => 'Marquesas Time'),
6072     'Pacific/Midway' => array(
6073         'offset' => -39600000,
6074         'shortname' => 'SST',
6075         'dstshortname' => null,
6076         'longname' => 'Samoa Standard Time'),
6077     'Pacific/Nauru' => array(
6078         'offset' => 43200000,
6079         'shortname' => 'NRT',
6080         'dstshortname' => null,
6081         'longname' => 'Nauru Time'),
6082     'Pacific/Niue' => array(
6083         'offset' => -39600000,
6084         'shortname' => 'NUT',
6085         'dstshortname' => null,
6086         'longname' => 'Niue Time'),
6087     'Pacific/Norfolk' => array(
6088         'offset' => 41400000,
6089         'shortname' => 'NFT',
6090         'dstshortname' => null,
6091         'longname' => 'Norfolk Time'),
6092     'Pacific/Noumea' => array(
6093         'offset' => 39600000,
6094         'shortname' => 'NCT',
6095         'dstshortname' => null,
6096         'longname' => 'New Caledonia Time'),
6097     'Pacific/Pago_Pago' => array(
6098         'offset' => -39600000,
6099         'shortname' => 'SST',
6100         'dstshortname' => null,
6101         'longname' => 'Samoa Standard Time'),
6102     'Pacific/Palau' => array(
6103         'offset' => 32400000,
6104         'shortname' => 'PWT',
6105         'dstshortname' => null,
6106         'longname' => 'Palau Time'),
6107     'Pacific/Pitcairn' => array(
6108         'offset' => -28800000,
6109         'shortname' => 'PST',
6110         'dstshortname' => null,
6111         'longname' => 'Pitcairn Standard Time'),
6112     'Pacific/Ponape' => array(
6113         'offset' => 39600000,
6114         'shortname' => 'PONT',
6115         'dstshortname' => null,
6116         'longname' => 'Ponape Time'),
6117     'Pacific/Port_Moresby' => array(
6118         'offset' => 36000000,
6119         'shortname' => 'PGT',
6120         'dstshortname' => null,
6121         'longname' => 'Papua New Guinea Time'),
6122     'Pacific/Rarotonga' => array(
6123         'offset' => -36000000,
6124         'shortname' => 'CKT',
6125         'dstshortname' => null,
6126         'longname' => 'Cook Is. Time'),
6127     'Pacific/Saipan' => array(
6128         'offset' => 36000000,
6129         'shortname' => 'ChST',
6130         'dstshortname' => null,
6131         'longname' => 'Chamorro Standard Time'),
6132     'Pacific/Samoa' => array(
6133         'offset' => -39600000,
6134         'shortname' => 'SST',
6135         'dstshortname' => null,
6136         'longname' => 'Samoa Standard Time'),
6137     'Pacific/Tahiti' => array(
6138         'offset' => -36000000,
6139         'shortname' => 'TAHT',
6140         'dstshortname' => null,
6141         'longname' => 'Tahiti Time'),
6142     'Pacific/Tarawa' => array(
6143         'offset' => 43200000,
6144         'shortname' => 'GILT',
6145         'dstshortname' => null,
6146         'longname' => 'Gilbert Is. Time'),
6147     'Pacific/Tongatapu' => array(
6148         'offset' => 46800000,
6149         'shortname' => 'TOT',
6150         'dstshortname' => null,
6151         'longname' => 'Tonga Time'),
6152     'Pacific/Truk' => array(
6153         'offset' => 36000000,
6154         'shortname' => 'TRUT',
6155         'dstshortname' => null,
6156         'longname' => 'Truk Time'),
6157     'Pacific/Wake' => array(
6158         'offset' => 43200000,
6159         'shortname' => 'WAKT',
6160         'dstshortname' => null,
6161         'longname' => 'Wake Time'),
6162     'Pacific/Wallis' => array(
6163         'offset' => 43200000,
6164         'shortname' => 'WFT',
6165         'dstshortname' => null,
6166         'longname' => 'Wallis & Futuna Time'),
6167     'Pacific/Yap' => array(
6168         'offset' => 36000000,
6169         'shortname' => 'TRUT',
6170         'dstshortname' => null,
6171         'longname' => 'Yap Time'),
6172     'Poland' => array(
6173         'offset' => 3600000,
6174         'shortname' => 'CET',
6175         'dstshortname' => 'CEST',
6176         'longname' => 'Central European Time',
6177         'dstlongname' => 'Central European Summer Time',
6178         'summertimeoffset' => 3600000,
6179         'summertimestartmonth' => 3,
6180         'summertimestartday' => 'lastSun',
6181         'summertimestarttime' => 3600000,
6182         'summertimeendmonth' => 10,
6183         'summertimeendday' => 'lastSun',
6184         'summertimeendtime' => 3600000),
6185     'Portugal' => array(
6186         'offset' => 0,
6187         'shortname' => 'WET',
6188         'dstshortname' => 'WEST',
6189         'longname' => 'Western European Time',
6190         'dstlongname' => 'Western European Summer Time',
6191         'summertimeoffset' => 3600000,
6192         'summertimestartmonth' => 3,
6193         'summertimestartday' => 'lastSun',
6194         'summertimestarttime' => 3600000,
6195         'summertimeendmonth' => 10,
6196         'summertimeendday' => 'lastSun',
6197         'summertimeendtime' => 3600000),
6198     'ROC' => array(
6199         'offset' => 28800000,
6200         'shortname' => 'CST',
6201         'dstshortname' => null),
6202     'ROK' => array(
6203         'offset' => 32400000,
6204         'shortname' => 'KST',
6205         'dstshortname' => null,
6206         'longname' => 'Korea Standard Time'),
6207     'Singapore' => array(
6208         'offset' => 28800000,
6209         'shortname' => 'SGT',
6210         'dstshortname' => null,
6211         'longname' => 'Singapore Time'),
6212     'Turkey' => array(
6213         'offset' => 7200000,
6214         'shortname' => 'EET',
6215         'dstshortname' => 'EEST',
6216         'longname' => 'Eastern European Time',
6217         'dstlongname' => 'Eastern European Summer Time',
6218         'summertimeoffset' => 3600000,
6219         'summertimestartmonth' => 3,
6220         'summertimestartday' => 'lastSun',
6221         'summertimestarttime' => 3600000,
6222         'summertimeendmonth' => 10,
6223         'summertimeendday' => 'lastSun',
6224         'summertimeendtime' => 3600000),
6225     'UCT' => array(
6226         'offset' => 0,
6227         'shortname' => 'UCT',
6228         'dstshortname' => null,
6229         'longname' => 'Coordinated Universal Time'),
6230     'US/Alaska' => array(
6231         'offset' => -32400000,
6232         'shortname' => 'AKST',
6233         'dstshortname' => 'AKDT',
6234         'longname' => 'Alaska Standard Time',
6235         'dstlongname' => 'Alaska Daylight Time',
6236         'summertimeoffset' => 3600000,
6237         'summertimestartmonth' => 3,
6238         'summertimestartday' => 'Sun>=8',
6239         'summertimestarttime' => 39600000,
6240         'summertimeendmonth' => 11,
6241         'summertimeendday' => 'Sun>=1',
6242         'summertimeendtime' => 36000000),
6243     'US/Aleutian' => array(
6244         'offset' => -36000000,
6245         'shortname' => 'HAST',
6246         'dstshortname' => 'HADT',
6247         'longname' => 'Hawaii-Aleutian Standard Time',
6248         'dstlongname' => 'Hawaii-Aleutian Daylight Time',
6249         'summertimeoffset' => 3600000,
6250         'summertimestartmonth' => 3,
6251         'summertimestartday' => 'Sun>=8',
6252         'summertimestarttime' => 43200000,
6253         'summertimeendmonth' => 11,
6254         'summertimeendday' => 'Sun>=1',
6255         'summertimeendtime' => 39600000),
6256     'US/Arizona' => array(
6257         'offset' => -25200000,
6258         'shortname' => 'MST',
6259         'dstshortname' => null,
6260         'longname' => 'Mountain Standard Time'),
6261     'US/Central' => array(
6262         'offset' => -21600000,
6263         'shortname' => 'CST',
6264         'dstshortname' => 'CDT',
6265         'longname' => 'Central Standard Time',
6266         'dstlongname' => 'Central Daylight Time',
6267         'summertimeoffset' => 3600000,
6268         'summertimestartmonth' => 3,
6269         'summertimestartday' => 'Sun>=8',
6270         'summertimestarttime' => 28800000,
6271         'summertimeendmonth' => 11,
6272         'summertimeendday' => 'Sun>=1',
6273         'summertimeendtime' => 25200000),
6274     'US/East-Indiana' => array(
6275         'offset' => -18000000,
6276         'shortname' => 'EST',
6277         'dstshortname' => 'EDT',
6278         'longname' => 'Eastern Standard Time',
6279         'summertimeoffset' => 3600000,
6280         'summertimestartmonth' => 3,
6281         'summertimestartday' => 'Sun>=8',
6282         'summertimestarttime' => 25200000,
6283         'summertimeendmonth' => 11,
6284         'summertimeendday' => 'Sun>=1',
6285         'summertimeendtime' => 21600000),
6286     'US/Eastern' => array(
6287         'offset' => -18000000,
6288         'shortname' => 'EST',
6289         'dstshortname' => 'EDT',
6290         'longname' => 'Eastern Standard Time',
6291         'dstlongname' => 'Eastern Daylight Time',
6292         'summertimeoffset' => 3600000,
6293         'summertimestartmonth' => 3,
6294         'summertimestartday' => 'Sun>=8',
6295         'summertimestarttime' => 25200000,
6296         'summertimeendmonth' => 11,
6297         'summertimeendday' => 'Sun>=1',
6298         'summertimeendtime' => 21600000),
6299     'US/Hawaii' => array(
6300         'offset' => -36000000,
6301         'shortname' => 'HST',
6302         'dstshortname' => null,
6303         'longname' => 'Hawaii Standard Time'),
6304     'US/Indiana-Starke' => array(
6305         'offset' => -21600000,
6306         'shortname' => 'CST',
6307         'dstshortname' => 'CDT',
6308         'longname' => 'Central Standard Time',
6309         'dstlongname' => 'Central Daylight Time',
6310         'summertimeoffset' => 3600000,
6311         'summertimestartmonth' => 3,
6312         'summertimestartday' => 'Sun>=8',
6313         'summertimestarttime' => 28800000,
6314         'summertimeendmonth' => 11,
6315         'summertimeendday' => 'Sun>=1',
6316         'summertimeendtime' => 25200000),
6317     'US/Michigan' => array(
6318         'offset' => -18000000,
6319         'shortname' => 'EST',
6320         'dstshortname' => 'EDT',
6321         'longname' => 'Eastern Standard Time',
6322         'dstlongname' => 'Eastern Daylight Time',
6323         'summertimeoffset' => 3600000,
6324         'summertimestartmonth' => 3,
6325         'summertimestartday' => 'Sun>=8',
6326         'summertimestarttime' => 25200000,
6327         'summertimeendmonth' => 11,
6328         'summertimeendday' => 'Sun>=1',
6329         'summertimeendtime' => 21600000),
6330     'US/Mountain' => array(
6331         'offset' => -25200000,
6332         'shortname' => 'MST',
6333         'dstshortname' => 'MDT',
6334         'longname' => 'Mountain Standard Time',
6335         'dstlongname' => 'Mountain Daylight Time',
6336         'summertimeoffset' => 3600000,
6337         'summertimestartmonth' => 3,
6338         'summertimestartday' => 'Sun>=8',
6339         'summertimestarttime' => 32400000,
6340         'summertimeendmonth' => 11,
6341         'summertimeendday' => 'Sun>=1',
6342         'summertimeendtime' => 28800000),
6343     'US/Pacific' => array(
6344         'offset' => -28800000,
6345         'shortname' => 'PST',
6346         'dstshortname' => 'PDT',
6347         'longname' => 'Pacific Standard Time',
6348         'dstlongname' => 'Pacific Daylight Time',
6349         'summertimeoffset' => 3600000,
6350         'summertimestartmonth' => 3,
6351         'summertimestartday' => 'Sun>=8',
6352         'summertimestarttime' => 36000000,
6353         'summertimeendmonth' => 11,
6354         'summertimeendday' => 'Sun>=1',
6355         'summertimeendtime' => 32400000),
6356     'US/Pacific-New' => array(
6357         'offset' => -28800000,
6358         'shortname' => 'PST',
6359         'dstshortname' => 'PDT',
6360         'longname' => 'Pacific Standard Time',
6361         'dstlongname' => 'Pacific Daylight Time',
6362         'summertimeoffset' => 3600000,
6363         'summertimestartmonth' => 3,
6364         'summertimestartday' => 'Sun>=8',
6365         'summertimestarttime' => 36000000,
6366         'summertimeendmonth' => 11,
6367         'summertimeendday' => 'Sun>=1',
6368         'summertimeendtime' => 32400000),
6369     'US/Samoa' => array(
6370         'offset' => -39600000,
6371         'shortname' => 'SST',
6372         'dstshortname' => null,
6373         'longname' => 'Samoa Standard Time'),
6374     'UTC' => array(
6375         'offset' => 0,
6376         'shortname' => 'UTC',
6377         'dstshortname' => null,
6378         'longname' => 'Coordinated Universal Time'),
6379     'Universal' => array(
6380         'offset' => 0,
6381         'shortname' => 'UTC',
6382         'dstshortname' => null,
6383         'longname' => 'Coordinated Universal Time'),
6384     'W-SU' => array(
6385         'offset' => 10800000,
6386         'shortname' => 'MSK',
6387         'dstshortname' => 'MSD',
6388         'longname' => 'Moscow Standard Time',
6389         'dstlongname' => 'Moscow Daylight Time',
6390         'summertimeoffset' => 3600000,
6391         'summertimestartmonth' => 3,
6392         'summertimestartday' => 'lastSun',
6393         'summertimestarttime' => -3600000,
6394         'summertimeendmonth' => 10,
6395         'summertimeendday' => 'lastSun',
6396         'summertimeendtime' => -3600000),
6397     'WET' => array(
6398         'offset' => 0,
6399         'shortname' => 'WET',
6400         'dstshortname' => 'WEST',
6401         'longname' => 'Western European Time',
6402         'dstlongname' => 'Western European Summer Time',
6403         'summertimeoffset' => 3600000,
6404         'summertimestartmonth' => 3,
6405         'summertimestartday' => 'lastSun',
6406         'summertimestarttime' => 3600000,
6407         'summertimeendmonth' => 10,
6408         'summertimeendday' => 'lastSun',
6409         'summertimeendtime' => 3600000),
6410     'Zulu' => array(
6411         'offset' => 0,
6412         'shortname' => 'UTC',
6413         'dstshortname' => null,
6414         'longname' => 'Coordinated Universal Time'),
6415     //
6416     // Following time-zones are the long names for the time-zones above, thus N.B.
6417     // that the Summer-Time for each zone cannot really be reliable, because two
6418     // zones may share the same zone name, but differ in Summer-Time arrangements;
6419     // and also that the data cannot be maintained as easily and thus may also
6420     // be inaccurate or out-of-date
6421     //
6422     'ACT' => array(
6423         'offset' => 34200000,
6424         'shortname' => 'CST',
6425         'longname' => 'Central Standard Time (Northern Territory)'),
6426     'AET' => array(
6427         'offset' => 36000000,
6428         'shortname' => 'EST',
6429         'dstshortname' => 'EST',
6430         'longname' => 'Eastern Standard Time (New South Wales)',
6431         'dstlongname' => 'Eastern Summer Time (New South Wales)'),
6432     'AGT' => array(
6433         'offset' => -10800000,
6434         'shortname' => 'ART',
6435         'longname' => 'Argentine Time'),
6436     'ART' => array(
6437         'offset' => 7200000,
6438         'shortname' => 'EET',
6439         'dstshortname' => 'EEST',
6440         'longname' => 'Eastern European Time',
6441         'dstlongname' => 'Eastern European Summer Time'),
6442     'AST' => array(
6443         'offset' => -32400000,
6444         'shortname' => 'AKST',
6445         'dstshortname' => 'AKDT',
6446         'longname' => 'Alaska Standard Time',
6447         'dstlongname' => 'Alaska Daylight Time'),
6448     'Acre Time' => array(
6449         'offset' => -18000000,
6450         'shortname' => 'ACT',
6451         'longname' => 'Acre Time'),
6452     'Afghanistan Time' => array(
6453         'offset' => 16200000,
6454         'shortname' => 'AFT',
6455         'longname' => 'Afghanistan Time'),
6456     'Alaska Standard Time' => array(
6457         'offset' => -32400000,
6458         'shortname' => 'AKST',
6459         'dstshortname' => 'AKDT',
6460         'longname' => 'Alaska Standard Time',
6461         'dstlongname' => 'Alaska Daylight Time'),
6462     'Alma-Ata Time' => array(
6463         'offset' => 21600000,
6464         'shortname' => 'ALMT',
6465         'dstshortname' => 'ALMST',
6466         'longname' => 'Alma-Ata Time',
6467         'dstlongname' => 'Alma-Ata Summer Time'),
6468     'Amazon Standard Time' => array(
6469         'offset' => -14400000,
6470         'shortname' => 'AMT',
6471         'longname' => 'Amazon Standard Time'),
6472     'Anadyr Time' => array(
6473         'offset' => 43200000,
6474         'shortname' => 'ANAT',
6475         'dstshortname' => 'ANAST',
6476         'longname' => 'Anadyr Time',
6477         'dstlongname' => 'Anadyr Summer Time'),
6478     'Aqtau Time' => array(
6479         'offset' => 14400000,
6480         'shortname' => 'AQTT',
6481         'dstshortname' => 'AQTST',
6482         'longname' => 'Aqtau Time',
6483         'dstlongname' => 'Aqtau Summer Time'),
6484     'Aqtobe Time' => array(
6485         'offset' => 18000000,
6486         'shortname' => 'AQTT',
6487         'dstshortname' => 'AQTST',
6488         'longname' => 'Aqtobe Time',
6489         'dstlongname' => 'Aqtobe Summer Time'),
6490     'Arabia Standard Time' => array(
6491         'offset' => 10800000,
6492         'shortname' => 'AST',
6493         'longname' => 'Arabia Standard Time'),
6494     'Argentine Time' => array(
6495         'offset' => -10800000,
6496         'shortname' => 'ART',
6497         'longname' => 'Argentine Time'),
6498     'Armenia Time' => array(
6499         'offset' => 14400000,
6500         'shortname' => 'AMT',
6501         'dstshortname' => 'AMST',
6502         'longname' => 'Armenia Time',
6503         'dstlongname' => 'Armenia Summer Time'),
6504     'Atlantic Standard Time' => array(
6505         'offset' => -14400000,
6506         'shortname' => 'AST',
6507         'dstshortname' => 'ADT',
6508         'longname' => 'Atlantic Standard Time',
6509         'dstlongname' => 'Atlantic Daylight Time'),
6510     'Azerbaijan Time' => array(
6511         'offset' => 14400000,
6512         'shortname' => 'AZT',
6513         'dstshortname' => 'AZST',
6514         'longname' => 'Azerbaijan Time',
6515         'dstlongname' => 'Azerbaijan Summer Time'),
6516     'Azores Time' => array(
6517         'offset' => -3600000,
6518         'shortname' => 'AZOT',
6519         'dstshortname' => 'AZOST',
6520         'longname' => 'Azores Time',
6521         'dstlongname' => 'Azores Summer Time'),
6522     'BDT' => array(
6523         'offset' => 21600000,
6524         'shortname' => 'BDT',
6525         'longname' => 'Bangladesh Time'),
6526     'BET' => array(
6527         'offset' => -10800000,
6528         'shortname' => 'BRT',
6529         'dstshortname' => 'BRST',
6530         'longname' => 'Brazil Time',
6531         'dstlongname' => 'Brazil Summer Time'),
6532     'Bangladesh Time' => array(
6533         'offset' => 21600000,
6534         'shortname' => 'BDT',
6535         'longname' => 'Bangladesh Time'),
6536     'Bhutan Time' => array(
6537         'offset' => 21600000,
6538         'shortname' => 'BTT',
6539         'longname' => 'Bhutan Time'),
6540     'Bolivia Time' => array(
6541         'offset' => -14400000,
6542         'shortname' => 'BOT',
6543         'longname' => 'Bolivia Time'),
6544     'Brazil Time' => array(
6545         'offset' => -10800000,
6546         'shortname' => 'BRT',
6547         'dstshortname' => 'BRST',
6548         'longname' => 'Brazil Time',
6549         'dstlongname' => 'Brazil Summer Time'),
6550     'Brunei Time' => array(
6551         'offset' => 28800000,
6552         'shortname' => 'BNT',
6553         'longname' => 'Brunei Time'),
6554     'CAT' => array(
6555         'offset' => 7200000,
6556         'shortname' => 'CAT',
6557         'longname' => 'Central African Time'),
6558     'CEST' => array(
6559         'offset' => 3600000,
6560         'shortname' => 'CET',
6561         'dstshortname' => 'CEST',
6562         'longname' => 'Central European Time',
6563         'dstlongname' => 'Central European Summer Time'),
6564     'CNT' => array(
6565         'offset' => -12600000,
6566         'shortname' => 'NST',
6567         'dstshortname' => 'NDT',
6568         'longname' => 'Newfoundland Standard Time',
6569         'dstlongname' => 'Newfoundland Daylight Time'),
6570     'CST' => array(
6571         'offset' => -21600000,
6572         'shortname' => 'CST',
6573         'dstshortname' => 'CDT',
6574         'longname' => 'Central Standard Time',
6575         'dstlongname' => 'Central Daylight Time'),
6576     'CTT' => array(
6577         'offset' => 28800000,
6578         'shortname' => 'CST',
6579         'longname' => 'China Standard Time'),
6580     'Cape Verde Time' => array(
6581         'offset' => -3600000,
6582         'shortname' => 'CVT',
6583         'longname' => 'Cape Verde Time'),
6584     'Central African Time' => array(
6585         'offset' => 7200000,
6586         'shortname' => 'CAT',
6587         'longname' => 'Central African Time'),
6588     'Central European Time' => array(
6589         'offset' => 3600000,
6590         'shortname' => 'CET',
6591         'dstshortname' => 'CEST',
6592         'longname' => 'Central European Time',
6593         'dstlongname' => 'Central European Summer Time'),
6594     'Central Indonesia Time' => array(
6595         'offset' => 28800000,
6596         'shortname' => 'CIT',
6597         'longname' => 'Central Indonesia Time'),
6598     'Central Standard Time' => array(
6599         'offset' => -18000000,
6600         'shortname' => 'CST',
6601         'dstshortname' => 'CDT',
6602         'longname' => 'Central Standard Time',
6603         'dstlongname' => 'Central Daylight Time'),
6604     'Central Standard Time (Northern Territory)' => array(
6605         'offset' => 34200000,
6606         'shortname' => 'CST',
6607         'longname' => 'Central Standard Time (Northern Territory)'),
6608     'Central Standard Time (South Australia)' => array(
6609         'offset' => 34200000,
6610         'shortname' => 'CST',
6611         'dstshortname' => 'CST',
6612         'longname' => 'Central Standard Time (South Australia)',
6613         'dstlongname' => 'Central Summer Time (South Australia)'),
6614     'Central Standard Time (South Australia/New South Wales)' => array(
6615         'offset' => 34200000,
6616         'shortname' => 'CST',
6617         'dstshortname' => 'CST',
6618         'longname' => 'Central Standard Time (South Australia/New South Wales)',
6619         'dstlongname' => 'Central Summer Time (South Australia/New South Wales)'),
6620     'Chamorro Standard Time' => array(
6621         'offset' => 36000000,
6622         'shortname' => 'ChST',
6623         'longname' => 'Chamorro Standard Time'),
6624     'Chatham Standard Time' => array(
6625         'offset' => 45900000,
6626         'shortname' => 'CHAST',
6627         'dstshortname' => 'CHADT',
6628         'longname' => 'Chatham Standard Time',
6629         'dstlongname' => 'Chatham Daylight Time'),
6630     'Chile Time' => array(
6631         'offset' => -14400000,
6632         'shortname' => 'CLT',
6633         'dstshortname' => 'CLST',
6634         'longname' => 'Chile Time',
6635         'dstlongname' => 'Chile Summer Time'),
6636     'China Standard Time' => array(
6637         'offset' => 28800000,
6638         'shortname' => 'CST',
6639         'longname' => 'China Standard Time'),
6640     'Choibalsan Time' => array(
6641         'offset' => 32400000,
6642         'shortname' => 'CHOT',
6643         'longname' => 'Choibalsan Time'),
6644     'Christmas Island Time' => array(
6645         'offset' => 25200000,
6646         'shortname' => 'CXT',
6647         'longname' => 'Christmas Island Time'),
6648     'Cocos Islands Time' => array(
6649         'offset' => 23400000,
6650         'shortname' => 'CCT',
6651         'longname' => 'Cocos Islands Time'),
6652     'Colombia Time' => array(
6653         'offset' => -18000000,
6654         'shortname' => 'COT',
6655         'longname' => 'Colombia Time'),
6656     'Cook Is. Time' => array(
6657         'offset' => -36000000,
6658         'shortname' => 'CKT',
6659         'longname' => 'Cook Is. Time'),
6660     'Coordinated Universal Time' => array(
6661         'offset' => 0,
6662         'shortname' => 'UTC',
6663         'longname' => 'Coordinated Universal Time'),
6664     'Davis Time' => array(
6665         'offset' => 25200000,
6666         'shortname' => 'DAVT',
6667         'longname' => 'Davis Time'),
6668     'Dumont-d\'Urville Time' => array(
6669         'offset' => 36000000,
6670         'shortname' => 'DDUT',
6671         'longname' => 'Dumont-d\'Urville Time'),
6672     'EAT' => array(
6673         'offset' => 10800000,
6674         'shortname' => 'EAT',
6675         'longname' => 'Eastern African Time'),
6676     'ECT' => array(
6677         'offset' => 3600000,
6678         'shortname' => 'CET',
6679         'dstshortname' => 'CEST',
6680         'longname' => 'Central European Time',
6681         'dstlongname' => 'Central European Summer Time'),
6682     'East Indonesia Time' => array(
6683         'offset' => 32400000,
6684         'shortname' => 'EIT',
6685         'longname' => 'East Indonesia Time'),
6686     'East Timor Time' => array(
6687         'offset' => 32400000,
6688         'shortname' => 'TPT',
6689         'longname' => 'East Timor Time'),
6690     'Easter Is. Time' => array(
6691         'offset' => -21600000,
6692         'shortname' => 'EAST',
6693         'dstshortname' => 'EASST',
6694         'longname' => 'Easter Is. Time',
6695         'dstlongname' => 'Easter Is. Summer Time'),
6696     'Eastern African Time' => array(
6697         'offset' => 10800000,
6698         'shortname' => 'EAT',
6699         'longname' => 'Eastern African Time'),
6700     'Eastern European Time' => array(
6701         'offset' => 7200000,
6702         'shortname' => 'EET',
6703         'dstshortname' => 'EEST',
6704         'longname' => 'Eastern European Time',
6705         'dstlongname' => 'Eastern European Summer Time'),
6706     'Eastern Greenland Time' => array(
6707         'offset' => 3600000,
6708         'shortname' => 'EGT',
6709         'dstshortname' => 'EGST',
6710         'longname' => 'Eastern Greenland Time',
6711         'dstlongname' => 'Eastern Greenland Summer Time'),
6712     'Eastern Standard Time' => array(
6713         'offset' => -18000000,
6714         'shortname' => 'EST',
6715         'dstshortname' => 'EDT',
6716         'longname' => 'Eastern Standard Time',
6717         'dstlongname' => 'Eastern Daylight Time'),
6718     'Eastern Standard Time (New South Wales)' => array(
6719         'offset' => 36000000,
6720         'shortname' => 'EST',
6721         'dstshortname' => 'EST',
6722         'longname' => 'Eastern Standard Time (New South Wales)',
6723         'dstlongname' => 'Eastern Summer Time (New South Wales)'),
6724     'Eastern Standard Time (Queensland)' => array(
6725         'offset' => 36000000,
6726         'shortname' => 'EST',
6727         'longname' => 'Eastern Standard Time (Queensland)'),
6728     'Eastern Standard Time (Tasmania)' => array(
6729         'offset' => 36000000,
6730         'shortname' => 'EST',
6731         'dstshortname' => 'EST',
6732         'longname' => 'Eastern Standard Time (Tasmania)',
6733         'dstlongname' => 'Eastern Summer Time (Tasmania)'),
6734     'Eastern Standard Time (Victoria)' => array(
6735         'offset' => 36000000,
6736         'shortname' => 'EST',
6737         'dstshortname' => 'EST',
6738         'longname' => 'Eastern Standard Time (Victoria)',
6739         'dstlongname' => 'Eastern Summer Time (Victoria)'),
6740     'Ecuador Time' => array(
6741         'offset' => -18000000,
6742         'shortname' => 'ECT',
6743         'longname' => 'Ecuador Time'),
6744     'Falkland Is. Time' => array(
6745         'offset' => -14400000,
6746         'shortname' => 'FKT',
6747         'dstshortname' => 'FKST',
6748         'longname' => 'Falkland Is. Time',
6749         'dstlongname' => 'Falkland Is. Summer Time'),
6750     'Fernando de Noronha Time' => array(
6751         'offset' => -7200000,
6752         'shortname' => 'FNT',
6753         'longname' => 'Fernando de Noronha Time'),
6754     'Fiji Time' => array(
6755         'offset' => 43200000,
6756         'shortname' => 'FJT',
6757         'longname' => 'Fiji Time'),
6758     'French Guiana Time' => array(
6759         'offset' => -10800000,
6760         'shortname' => 'GFT',
6761         'longname' => 'French Guiana Time'),
6762     'French Southern & Antarctic Lands Time' => array(
6763         'offset' => 18000000,
6764         'shortname' => 'TFT',
6765         'longname' => 'French Southern & Antarctic Lands Time'),
6766     'GMT+03:07' => array(
6767         'offset' => 11224000,
6768         'shortname' => 'GMT+03:07',
6769         'longname' => 'GMT+03:07'),
6770     'Galapagos Time' => array(
6771         'offset' => -21600000,
6772         'shortname' => 'GALT',
6773         'longname' => 'Galapagos Time'),
6774     'Gambier Time' => array(
6775         'offset' => -32400000,
6776         'shortname' => 'GAMT',
6777         'longname' => 'Gambier Time'),
6778     'Georgia Time' => array(
6779         'offset' => 14400000,
6780         'shortname' => 'GET',
6781         'dstshortname' => 'GEST',
6782         'longname' => 'Georgia Time',
6783         'dstlongname' => 'Georgia Summer Time'),
6784     'Gilbert Is. Time' => array(
6785         'offset' => 43200000,
6786         'shortname' => 'GILT',
6787         'longname' => 'Gilbert Is. Time'),
6788     'Greenwich Mean Time' => array(
6789         'offset' => 0,
6790         'shortname' => 'GMT',
6791         'longname' => 'Greenwich Mean Time'),
6792     'Gulf Standard Time' => array(
6793         'offset' => 14400000,
6794         'shortname' => 'GST',
6795         'longname' => 'Gulf Standard Time'),
6796     'Guyana Time' => array(
6797         'offset' => -14400000,
6798         'shortname' => 'GYT',
6799         'longname' => 'Guyana Time'),
6800     'Hawaii Standard Time' => array(
6801         'offset' => -36000000,
6802         'shortname' => 'HST',
6803         'longname' => 'Hawaii Standard Time'),
6804     'Hawaii-Aleutian Standard Time' => array(
6805         'offset' => -36000000,
6806         'shortname' => 'HAST',
6807         'dstshortname' => 'HADT',
6808         'longname' => 'Hawaii-Aleutian Standard Time',
6809         'dstlongname' => 'Hawaii-Aleutian Daylight Time'),
6810     'Hong Kong Time' => array(
6811         'offset' => 28800000,
6812         'shortname' => 'HKT',
6813         'longname' => 'Hong Kong Time'),
6814     'Hovd Time' => array(
6815         'offset' => 25200000,
6816         'shortname' => 'HOVT',
6817         'longname' => 'Hovd Time'),
6818     'IET' => array(
6819         'offset' => -18000000,
6820         'shortname' => 'EST',
6821         'longname' => 'Eastern Standard Time'),
6822     'IST' => array(
6823         'offset' => 19800000,
6824         'shortname' => 'IST',
6825         'longname' => 'India Standard Time'),
6826     'India Standard Time' => array(
6827         'offset' => 19800000,
6828         'shortname' => 'IST',
6829         'longname' => 'India Standard Time'),
6830     'Indian Ocean Territory Time' => array(
6831         'offset' => 21600000,
6832         'shortname' => 'IOT',
6833         'longname' => 'Indian Ocean Territory Time'),
6834     'Indochina Time' => array(
6835         'offset' => 25200000,
6836         'shortname' => 'ICT',
6837         'longname' => 'Indochina Time'),
6838     'Iran Time' => array(
6839         'offset' => 12600000,
6840         'shortname' => 'IRT',
6841         'dstshortname' => 'IRST',
6842         'longname' => 'Iran Time',
6843         'dstlongname' => 'Iran Summer Time'),
6844     'Irkutsk Time' => array(
6845         'offset' => 28800000,
6846         'shortname' => 'IRKT',
6847         'dstshortname' => 'IRKST',
6848         'longname' => 'Irkutsk Time',
6849         'dstlongname' => 'Irkutsk Summer Time'),
6850     'Israel Standard Time' => array(
6851         'offset' => 7200000,
6852         'shortname' => 'IST',
6853         'dstshortname' => 'IDT',
6854         'longname' => 'Israel Standard Time',
6855         'dstlongname' => 'Israel Daylight Time'),
6856     'JST' => array(
6857         'offset' => 32400000,
6858         'shortname' => 'JST',
6859         'longname' => 'Japan Standard Time'),
6860     'Japan Standard Time' => array(
6861         'offset' => 32400000,
6862         'shortname' => 'JST',
6863         'longname' => 'Japan Standard Time'),
6864     'Kirgizstan Time' => array(
6865         'offset' => 18000000,
6866         'shortname' => 'KGT',
6867         'dstshortname' => 'KGST',
6868         'longname' => 'Kirgizstan Time',
6869         'dstlongname' => 'Kirgizstan Summer Time'),
6870     'Korea Standard Time' => array(
6871         'offset' => 32400000,
6872         'shortname' => 'KST',
6873         'longname' => 'Korea Standard Time'),
6874     'Kosrae Time' => array(
6875         'offset' => 39600000,
6876         'shortname' => 'KOST',
6877         'longname' => 'Kosrae Time'),
6878     'Krasnoyarsk Time' => array(
6879         'offset' => 25200000,
6880         'shortname' => 'KRAT',
6881         'dstshortname' => 'KRAST',
6882         'longname' => 'Krasnoyarsk Time',
6883         'dstlongname' => 'Krasnoyarsk Summer Time'),
6884     'Line Is. Time' => array(
6885         'offset' => 50400000,
6886         'shortname' => 'LINT',
6887         'longname' => 'Line Is. Time'),
6888     'Load Howe Standard Time' => array(
6889         'offset' => 37800000,
6890         'shortname' => 'LHST',
6891         'dstshortname' => 'LHST',
6892         'longname' => 'Load Howe Standard Time',
6893         'dstlongname' => 'Load Howe Summer Time'),
6894     'MIT' => array(
6895         'offset' => -39600000,
6896         'shortname' => 'WST',
6897         'longname' => 'West Samoa Time'),
6898     'Magadan Time' => array(
6899         'offset' => 39600000,
6900         'shortname' => 'MAGT',
6901         'dstshortname' => 'MAGST',
6902         'longname' => 'Magadan Time',
6903         'dstlongname' => 'Magadan Summer Time'),
6904     'Malaysia Time' => array(
6905         'offset' => 28800000,
6906         'shortname' => 'MYT',
6907         'longname' => 'Malaysia Time'),
6908     'Maldives Time' => array(
6909         'offset' => 18000000,
6910         'shortname' => 'MVT',
6911         'longname' => 'Maldives Time'),
6912     'Marquesas Time' => array(
6913         'offset' => -34200000,
6914         'shortname' => 'MART',
6915         'longname' => 'Marquesas Time'),
6916     'Marshall Islands Time' => array(
6917         'offset' => 43200000,
6918         'shortname' => 'MHT',
6919         'longname' => 'Marshall Islands Time'),
6920     'Mauritius Time' => array(
6921         'offset' => 14400000,
6922         'shortname' => 'MUT',
6923         'longname' => 'Mauritius Time'),
6924     'Mawson Time' => array(
6925         'offset' => 21600000,
6926         'shortname' => 'MAWT',
6927         'longname' => 'Mawson Time'),
6928     'Middle Europe Time' => array(
6929         'offset' => 3600000,
6930         'shortname' => 'MET',
6931         'dstshortname' => 'MEST',
6932         'longname' => 'Middle Europe Time',
6933         'dstlongname' => 'Middle Europe Summer Time'),
6934     'Moscow Standard Time' => array(
6935         'offset' => 10800000,
6936         'shortname' => 'MSK',
6937         'dstshortname' => 'MSD',
6938         'longname' => 'Moscow Standard Time',
6939         'dstlongname' => 'Moscow Daylight Time'),
6940     'Mountain Standard Time' => array(
6941         'offset' => -25200000,
6942         'shortname' => 'MST',
6943         'dstshortname' => 'MDT',
6944         'longname' => 'Mountain Standard Time',
6945         'dstlongname' => 'Mountain Daylight Time'),
6946     'Myanmar Time' => array(
6947         'offset' => 23400000,
6948         'shortname' => 'MMT',
6949         'longname' => 'Myanmar Time'),
6950     'NET' => array(
6951         'offset' => 14400000,
6952         'shortname' => 'AMT',
6953         'dstshortname' => 'AMST',
6954         'longname' => 'Armenia Time',
6955         'dstlongname' => 'Armenia Summer Time'),
6956     'NST' => array(
6957         'offset' => 43200000,
6958         'shortname' => 'NZST',
6959         'dstshortname' => 'NZDT',
6960         'longname' => 'New Zealand Standard Time',
6961         'dstlongname' => 'New Zealand Daylight Time'),
6962     'Nauru Time' => array(
6963         'offset' => 43200000,
6964         'shortname' => 'NRT',
6965         'longname' => 'Nauru Time'),
6966     'Nepal Time' => array(
6967         'offset' => 20700000,
6968         'shortname' => 'NPT',
6969         'longname' => 'Nepal Time'),
6970     'New Caledonia Time' => array(
6971         'offset' => 39600000,
6972         'shortname' => 'NCT',
6973         'longname' => 'New Caledonia Time'),
6974     'New Zealand Standard Time' => array(
6975         'offset' => 43200000,
6976         'shortname' => 'NZST',
6977         'dstshortname' => 'NZDT',
6978         'longname' => 'New Zealand Standard Time',
6979         'dstlongname' => 'New Zealand Daylight Time'),
6980     'Newfoundland Standard Time' => array(
6981         'offset' => -12600000,
6982         'shortname' => 'NST',
6983         'dstshortname' => 'NDT',
6984         'longname' => 'Newfoundland Standard Time',
6985         'dstlongname' => 'Newfoundland Daylight Time'),
6986     'Niue Time' => array(
6987         'offset' => -39600000,
6988         'shortname' => 'NUT',
6989         'longname' => 'Niue Time'),
6990     'Norfolk Time' => array(
6991         'offset' => 41400000,
6992         'shortname' => 'NFT',
6993         'longname' => 'Norfolk Time'),
6994     'Novosibirsk Time' => array(
6995         'offset' => 21600000,
6996         'shortname' => 'NOVT',
6997         'dstshortname' => 'NOVST',
6998         'longname' => 'Novosibirsk Time',
6999         'dstlongname' => 'Novosibirsk Summer Time'),
7000     'Omsk Time' => array(
7001         'offset' => 21600000,
7002         'shortname' => 'OMST',
7003         'dstshortname' => 'OMSST',
7004         'longname' => 'Omsk Time',
7005         'dstlongname' => 'Omsk Summer Time'),
7006     'PLT' => array(
7007         'offset' => 18000000,
7008         'shortname' => 'PKT',
7009         'longname' => 'Pakistan Time'),
7010     'PNT' => array(
7011         'offset' => -25200000,
7012         'shortname' => 'MST',
7013         'longname' => 'Mountain Standard Time'),
7014     'PRT' => array(
7015         'offset' => -14400000,
7016         'shortname' => 'AST',
7017         'longname' => 'Atlantic Standard Time'),
7018     'PST' => array(
7019         'offset' => -28800000,
7020         'shortname' => 'PST',
7021         'dstshortname' => 'PDT',
7022         'longname' => 'Pacific Standard Time',
7023         'dstlongname' => 'Pacific Daylight Time'),
7024     'Pacific Standard Time' => array(
7025         'offset' => -28800000,
7026         'shortname' => 'PST',
7027         'dstshortname' => 'PDT',
7028         'longname' => 'Pacific Standard Time',
7029         'dstlongname' => 'Pacific Daylight Time'),
7030     'Pakistan Time' => array(
7031         'offset' => 18000000,
7032         'shortname' => 'PKT',
7033         'longname' => 'Pakistan Time'),
7034     'Palau Time' => array(
7035         'offset' => 32400000,
7036         'shortname' => 'PWT',
7037         'longname' => 'Palau Time'),
7038     'Papua New Guinea Time' => array(
7039         'offset' => 36000000,
7040         'shortname' => 'PGT',
7041         'longname' => 'Papua New Guinea Time'),
7042     'Paraguay Time' => array(
7043         'offset' => -14400000,
7044         'shortname' => 'PYT',
7045         'dstshortname' => 'PYST',
7046         'longname' => 'Paraguay Time',
7047         'dstlongname' => 'Paraguay Summer Time'),
7048     'Peru Time' => array(
7049         'offset' => -18000000,
7050         'shortname' => 'PET',
7051         'longname' => 'Peru Time'),
7052     'Petropavlovsk-Kamchatski Time' => array(
7053         'offset' => 43200000,
7054         'shortname' => 'PETT',
7055         'dstshortname' => 'PETST',
7056         'longname' => 'Petropavlovsk-Kamchatski Time',
7057         'dstlongname' => 'Petropavlovsk-Kamchatski Summer Time'),
7058     'Philippines Time' => array(
7059         'offset' => 28800000,
7060         'shortname' => 'PHT',
7061         'longname' => 'Philippines Time'),
7062     'Phoenix Is. Time' => array(
7063         'offset' => 46800000,
7064         'shortname' => 'PHOT',
7065         'longname' => 'Phoenix Is. Time'),
7066     'Pierre & Miquelon Standard Time' => array(
7067         'offset' => -10800000,
7068         'shortname' => 'PMST',
7069         'dstshortname' => 'PMDT',
7070         'longname' => 'Pierre & Miquelon Standard Time',
7071         'dstlongname' => 'Pierre & Miquelon Daylight Time'),
7072     'Pitcairn Standard Time' => array(
7073         'offset' => -28800000,
7074         'shortname' => 'PST',
7075         'longname' => 'Pitcairn Standard Time'),
7076     'Ponape Time' => array(
7077         'offset' => 39600000,
7078         'shortname' => 'PONT',
7079         'longname' => 'Ponape Time'),
7080     'Reunion Time' => array(
7081         'offset' => 14400000,
7082         'shortname' => 'RET',
7083         'longname' => 'Reunion Time'),
7084     'SST' => array(
7085         'offset' => 39600000,
7086         'shortname' => 'SBT',
7087         'longname' => 'Solomon Is. Time'),
7088     'Sakhalin Time' => array(
7089         'offset' => 36000000,
7090         'shortname' => 'SAKT',
7091         'dstshortname' => 'SAKST',
7092         'longname' => 'Sakhalin Time',
7093         'dstlongname' => 'Sakhalin Summer Time'),
7094     'Samara Time' => array(
7095         'offset' => 14400000,
7096         'shortname' => 'SAMT',
7097         'dstshortname' => 'SAMST',
7098         'longname' => 'Samara Time',
7099         'dstlongname' => 'Samara Summer Time'),
7100     'Samoa Standard Time' => array(
7101         'offset' => -39600000,
7102         'shortname' => 'SST',
7103         'longname' => 'Samoa Standard Time'),
7104     'Seychelles Time' => array(
7105         'offset' => 14400000,
7106         'shortname' => 'SCT',
7107         'longname' => 'Seychelles Time'),
7108     'Singapore Time' => array(
7109         'offset' => 28800000,
7110         'shortname' => 'SGT',
7111         'longname' => 'Singapore Time'),
7112     'Solomon Is. Time' => array(
7113         'offset' => 39600000,
7114         'shortname' => 'SBT',
7115         'longname' => 'Solomon Is. Time'),
7116     'South Africa Standard Time' => array(
7117         'offset' => 7200000,
7118         'shortname' => 'SAST',
7119         'longname' => 'South Africa Standard Time'),
7120     'South Georgia Standard Time' => array(
7121         'offset' => -7200000,
7122         'shortname' => 'GST',
7123         'longname' => 'South Georgia Standard Time'),
7124     'Sri Lanka Time' => array(
7125         'offset' => 21600000,
7126         'shortname' => 'LKT',
7127         'longname' => 'Sri Lanka Time'),
7128     'Suriname Time' => array(
7129         'offset' => -10800000,
7130         'shortname' => 'SRT',
7131         'longname' => 'Suriname Time'),
7132     'Syowa Time' => array(
7133         'offset' => 10800000,
7134         'shortname' => 'SYOT',
7135         'longname' => 'Syowa Time'),
7136     'SystemV/AST4' => array(
7137         'offset' => -14400000,
7138         'shortname' => 'AST',
7139         'dstshortname' => '',
7140         'longname' => 'Atlantic Standard Time'),
7141     'SystemV/AST4ADT' => array(
7142         'offset' => -14400000,
7143         'shortname' => 'AST',
7144         'dstshortname' => 'ADT',
7145         'longname' => 'Atlantic Standard Time',
7146         'dstlongname' => 'Atlantic Daylight Time',
7147         'summertimeoffset' => 3600000000,
7148         'summertimestartmonth' => 4,
7149         'summertimestartday' => 'lastSun',
7150         'summertimestarttime' => 21600000000,
7151         'summertimeendmonth' => 10,
7152         'summertimeendday' => 'lastSun',
7153         'summertimeendtime' => 18000000000),
7154     'SystemV/CST6' => array(
7155         'offset' => -21600000,
7156         'shortname' => 'CST',
7157         'dstshortname' => '',
7158         'longname' => 'Central Standard Time'),
7159     'SystemV/CST6CDT' => array(
7160         'offset' => -21600000,
7161         'shortname' => 'CST',
7162         'dstshortname' => 'CDT',
7163         'longname' => 'Central Standard Time',
7164         'dstlongname' => 'Central Daylight Time',
7165         'summertimeoffset' => 3600000000,
7166         'summertimestartmonth' => 4,
7167         'summertimestartday' => 'lastSun',
7168         'summertimestarttime' => 28800000000,
7169         'summertimeendmonth' => 10,
7170         'summertimeendday' => 'lastSun',
7171         'summertimeendtime' => 25200000000),
7172     'SystemV/EST5' => array(
7173         'offset' => -18000000,
7174         'shortname' => 'EST',
7175         'dstshortname' => '',
7176         'longname' => 'Eastern Standard Time'),
7177     'SystemV/EST5EDT' => array(
7178         'offset' => -18000000,
7179         'shortname' => 'EST',
7180         'dstshortname' => 'EDT',
7181         'longname' => 'Eastern Standard Time',
7182         'dstlongname' => 'Eastern Daylight Time',
7183         'summertimeoffset' => 3600000000,
7184         'summertimestartmonth' => 4,
7185         'summertimestartday' => 'lastSun',
7186         'summertimestarttime' => 25200000000,
7187         'summertimeendmonth' => 10,
7188         'summertimeendday' => 'lastSun',
7189         'summertimeendtime' => 21600000000),
7190     'SystemV/HST10' => array(
7191         'offset' => -36000000,
7192         'shortname' => 'HST',
7193         'dstshortname' => '',
7194         'longname' => 'Hawaii Standard Time'),
7195     'SystemV/MST7' => array(
7196         'offset' => -25200000,
7197         'shortname' => 'MST',
7198         'dstshortname' => '',
7199         'longname' => 'Mountain Standard Time'),
7200     'SystemV/MST7MDT' => array(
7201         'offset' => -25200000,
7202         'shortname' => 'MST',
7203         'dstshortname' => 'MDT',
7204         'longname' => 'Mountain Standard Time',
7205         'dstlongname' => 'Mountain Daylight Time',
7206         'summertimeoffset' => 3600000000,
7207         'summertimestartmonth' => 4,
7208         'summertimestartday' => 'lastSun',
7209         'summertimestarttime' => 32400000000,
7210         'summertimeendmonth' => 10,
7211         'summertimeendday' => 'lastSun',
7212         'summertimeendtime' => 28800000000),
7213     'SystemV/PST8' => array(
7214         'offset' => -28800000,
7215         'shortname' => 'PST',
7216         'dstshortname' => '',
7217         'longname' => 'Pitcairn Standard Time'),
7218     'SystemV/PST8PDT' => array(
7219         'offset' => -28800000,
7220         'shortname' => 'PST',
7221         'dstshortname' => 'PDT',
7222         'longname' => 'Pacific Standard Time',
7223         'dstlongname' => 'Pacific Daylight Time',
7224         'summertimeoffset' => 3600000000,
7225         'summertimestartmonth' => 4,
7226         'summertimestartday' => 'lastSun',
7227         'summertimestarttime' => 36000000000,
7228         'summertimeendmonth' => 10,
7229         'summertimeendday' => 'lastSun',
7230         'summertimeendtime' => 32400000000),
7231     'SystemV/YST9' => array(
7232         'offset' => -32400000,
7233         'shortname' => 'YST',
7234         'dstshortname' => '',
7235         'longname' => 'Gambier Time'),
7236     'SystemV/YST9YDT' => array(
7237         'offset' => -32400000,
7238         'shortname' => 'YST',
7239         'dstshortname' => 'YDT',
7240         'longname' => 'Alaska Standard Time',
7241         'dstlongname' => 'Alaska Daylight Time',
7242         'summertimeoffset' => 3600000000,
7243         'summertimestartmonth' => 4,
7244         'summertimestartday' => 'lastSun',
7245         'summertimestarttime' => 39600000000,
7246         'summertimeendmonth' => 10,
7247         'summertimeendday' => 'lastSun',
7248         'summertimeendtime' => 36000000000),
7249     'Tahiti Time' => array(
7250         'offset' => -36000000,
7251         'shortname' => 'TAHT',
7252         'longname' => 'Tahiti Time'),
7253     'Tajikistan Time' => array(
7254         'offset' => 18000000,
7255         'shortname' => 'TJT',
7256         'longname' => 'Tajikistan Time'),
7257     'Tokelau Time' => array(
7258         'offset' => -36000000,
7259         'shortname' => 'TKT',
7260         'longname' => 'Tokelau Time'),
7261     'Tonga Time' => array(
7262         'offset' => 46800000,
7263         'shortname' => 'TOT',
7264         'longname' => 'Tonga Time'),
7265     'Truk Time' => array(
7266         'offset' => 36000000,
7267         'shortname' => 'TRUT',
7268         'longname' => 'Truk Time'),
7269     'Turkmenistan Time' => array(
7270         'offset' => 18000000,
7271         'shortname' => 'TMT',
7272         'longname' => 'Turkmenistan Time'),
7273     'Tuvalu Time' => array(
7274         'offset' => 43200000,
7275         'shortname' => 'TVT',
7276         'longname' => 'Tuvalu Time'),
7277     'Ulaanbaatar Time' => array(
7278         'offset' => 28800000,
7279         'shortname' => 'ULAT',
7280         'longname' => 'Ulaanbaatar Time'),
7281     'Uruguay Time' => array(
7282         'offset' => -10800000,
7283         'shortname' => 'UYT',
7284         'longname' => 'Uruguay Time'),
7285     'Uzbekistan Time' => array(
7286         'offset' => 18000000,
7287         'shortname' => 'UZT',
7288         'longname' => 'Uzbekistan Time'),
7289     'VST' => array(
7290         'offset' => 25200000,
7291         'shortname' => 'ICT',
7292         'longname' => 'Indochina Time'),
7293     'Vanuatu Time' => array(
7294         'offset' => 39600000,
7295         'shortname' => 'VUT',
7296         'longname' => 'Vanuatu Time'),
7297     'Venezuela Time' => array(
7298         'offset' => -14400000,
7299         'shortname' => 'VET',
7300         'longname' => 'Venezuela Time'),
7301     'Vladivostok Time' => array(
7302         'offset' => 36000000,
7303         'shortname' => 'VLAT',
7304         'dstshortname' => 'VLAST',
7305         'longname' => 'Vladivostok Time',
7306         'dstlongname' => 'Vladivostok Summer Time'),
7307     'Vostok time' => array(
7308         'offset' => 21600000,
7309         'shortname' => 'VOST',
7310         'longname' => 'Vostok time'),
7311     'Wake Time' => array(
7312         'offset' => 43200000,
7313         'shortname' => 'WAKT',
7314         'longname' => 'Wake Time'),
7315     'Wallis & Futuna Time' => array(
7316         'offset' => 43200000,
7317         'shortname' => 'WFT',
7318         'longname' => 'Wallis & Futuna Time'),
7319     'West Indonesia Time' => array(
7320         'offset' => 25200000,
7321         'shortname' => 'WIT',
7322         'longname' => 'West Indonesia Time'),
7323     'West Samoa Time' => array(
7324         'offset' => -39600000,
7325         'shortname' => 'WST',
7326         'longname' => 'West Samoa Time'),
7327     'Western African Time' => array(
7328         'offset' => 3600000,
7329         'shortname' => 'WAT',
7330         'dstshortname' => 'WAST',
7331         'longname' => 'Western African Time',
7332         'dstlongname' => 'Western African Summer Time'),
7333     'Western European Time' => array(
7334         'offset' => 0,
7335         'shortname' => 'WET',
7336         'dstshortname' => 'WEST',
7337         'longname' => 'Western European Time',
7338         'dstlongname' => 'Western European Summer Time'),
7339     'Western Greenland Time' => array(
7340         'offset' => -10800000,
7341         'shortname' => 'WGT',
7342         'dstshortname' => 'WGST',
7343         'longname' => 'Western Greenland Time',
7344         'dstlongname' => 'Western Greenland Summer Time'),
7345     'Western Standard Time (Australia)' => array(
7346         'offset' => 28800000,
7347         'shortname' => 'WST',
7348         'longname' => 'Western Standard Time (Australia)'),
7349     'Yakutsk Time' => array(
7350         'offset' => 32400000,
7351         'shortname' => 'YAKT',
7352         'dstshortname' => 'YAKST',
7353         'longname' => 'Yakutsk Time',
7354         'dstlongname' => 'Yaktsk Summer Time'),
7355     'Yap Time' => array(
7356         'offset' => 36000000,
7357         'shortname' => 'YAPT',
7358         'longname' => 'Yap Time'),
7359     'Yekaterinburg Time' => array(
7360         'offset' => 18000000,
7361         'shortname' => 'YEKT',
7362         'dstshortname' => 'YEKST',
7363         'longname' => 'Yekaterinburg Time',
7364         'dstlongname' => 'Yekaterinburg Summer Time'),
7365 );
7366
7367 /**
7368  * Initialize default timezone
7369  *
7370  * First try php.ini directive, then the value returned by date("e"), then
7371  * _DATE_TIMEZONE_DEFAULT global, then PHP_TZ environment variable, then TZ
7372  * environment variable.
7373  */
7374 if (isset($GLOBALS['_DATE_TIMEZONE_DEFAULT'])
7375     && Date_TimeZone::isValidID($GLOBALS['_DATE_TIMEZONE_DEFAULT'])) {
7376     Date_TimeZone::setDefault($GLOBALS['_DATE_TIMEZONE_DEFAULT']);
7377 } elseif (function_exists('version_compare') &&
7378     version_compare(phpversion(), "5.1.0", ">=") &&
7379     (
7380         Date_TimeZone::isValidID($ps_id = date_default_timezone_get()) ||
7381         Date_TimeZone::isValidID($ps_id = date("e"))
7382     )
7383 ) {
7384     Date_TimeZone::setDefault($ps_id);
7385 } elseif (getenv('PHP_TZ') && Date_TimeZone::isValidID(getenv('PHP_TZ'))) {
7386     Date_TimeZone::setDefault(getenv('PHP_TZ'));
7387 } elseif (getenv('TZ') && Date_TimeZone::isValidID(getenv('TZ'))) {
7388     Date_TimeZone::setDefault(getenv('TZ'));
7389 } elseif (Date_TimeZone::isValidID(date('T'))) {
7390     Date_TimeZone::setDefault(date('T'));
7391 } else {
7392     Date_TimeZone::setDefault('UTC');
7393 }
7394
7395 /*
7396  * Local variables:
7397  * mode: php
7398  * tab-width: 4
7399  * c-basic-offset: 4
7400  * c-hanging-comment-ender-p: nil
7401  * End:
7402  */