home *** CD-ROM | disk | FTP | other *** search
/ Cricao de Sites - 650 Layouts Prontos / WebMasters.iso / Servidores / xampp-win32-1.6.7-installer.exe / php / PEAR / Date / TimeZone.php < prev   
Encoding:
PHP Script  |  2008-07-02  |  159.3 KB  |  4,731 lines

  1. <?php
  2. /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */
  3.  
  4. // {{{ Header
  5.  
  6. /**
  7.  * TimeZone representation class, along with time zone information data
  8.  *
  9.  * PHP versions 4 and 5
  10.  *
  11.  * LICENSE:
  12.  *
  13.  * Copyright (c) 1997-2006 Baba Buehler, Pierre-Alain Joye
  14.  * All rights reserved.
  15.  *
  16.  * Redistribution and use in source and binary forms, with or without
  17.  * modification, are permitted under the terms of the BSD License.
  18.  *
  19.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  20.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  21.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  22.  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  23.  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  24.  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  25.  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  26.  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  27.  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  28.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  29.  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  30.  * POSSIBILITY OF SUCH DAMAGE.
  31.  *
  32.  * @category   Date and Time
  33.  * @package    Date
  34.  * @author     Baba Buehler <baba@babaz.com>
  35.  * @author     Pierre-Alain Joye <pajoye@php.net>
  36.  * @copyright  1997-2006 Baba Buehler, Pierre-Alain Joye
  37.  * @license    http://www.opensource.org/licenses/bsd-license.php
  38.  *             BSD License
  39.  * @version    CVS: $Id: TimeZone.php,v 1.14 2006/11/22 01:03:12 firman Exp $
  40.  * @link       http://pear.php.net/package/Date
  41.  */
  42.  
  43. // }}}
  44. // {{{ Class: Date_TimeZone
  45.  
  46. /**
  47.  * TimeZone representation class, along with time zone information data
  48.  *
  49.  * The default timezone is set from the first valid timezone id found
  50.  * in one of the following places, in this order:
  51.  *   + global $_DATE_TIMEZONE_DEFAULT
  52.  *   + system environment variable PHP_TZ
  53.  *   + system environment variable TZ
  54.  *   + the result of date('T')
  55.  *
  56.  * If no valid timezone id is found, the default timezone is set to 'UTC'.
  57.  * You may also manually set the default timezone by passing a valid id to
  58.  * Date_TimeZone::setDefault().
  59.  *
  60.  * This class includes time zone data (from zoneinfo) in the form of a
  61.  * global array, $_DATE_TIMEZONE_DATA.
  62.  *
  63.  * @author     Baba Buehler <baba@babaz.com>
  64.  * @copyright  1997-2006 Baba Buehler, Pierre-Alain Joye
  65.  * @license    http://www.opensource.org/licenses/bsd-license.php
  66.  *             BSD License
  67.  * @version    Release: 1.4.7
  68.  * @link       http://pear.php.net/package/Date
  69.  */
  70. class Date_TimeZone
  71. {
  72.     // {{{ Properties
  73.  
  74.     /**
  75.      * Time Zone ID of this time zone
  76.      * @var string
  77.      */
  78.     var $id;
  79.  
  80.     /**
  81.      * Long Name of this time zone (ie Central Standard Time)
  82.      * @var string
  83.      */
  84.     var $longname;
  85.  
  86.     /**
  87.      * Short Name of this time zone (ie CST)
  88.      * @var string
  89.      */
  90.     var $shortname;
  91.  
  92.     /**
  93.      * true if this time zone observes daylight savings time
  94.      * @var boolean
  95.      */
  96.     var $hasdst;
  97.  
  98.     /**
  99.      * DST Long Name of this time zone
  100.      * @var string
  101.      */
  102.     var $dstlongname;
  103.  
  104.     /**
  105.      * DST Short Name of this timezone
  106.      * @var string
  107.      */
  108.     var $dstshortname;
  109.  
  110.     /**
  111.      * offset, in milliseconds, of this timezone
  112.      * @var int
  113.      */
  114.     var $offset;
  115.  
  116.     /**
  117.      * System Default Time Zone
  118.      * @var object Date_TimeZone
  119.      */
  120.     var $default;
  121.  
  122.     // }}}
  123.     // {{{ Constructor
  124.  
  125.     /**
  126.      * Constructor
  127.      *
  128.      * Creates a new Date::TimeZone object, representing the time zone
  129.      * specified in $id.  If the supplied ID is invalid, the created
  130.      * time zone is UTC.
  131.      *
  132.      * @access public
  133.      * @param string $id the time zone id
  134.      * @return object Date_TimeZone the new Date_TimeZone object
  135.      */
  136.     function Date_TimeZone($id)
  137.     {
  138.         $_DATE_TIMEZONE_DATA =& $GLOBALS['_DATE_TIMEZONE_DATA'];
  139.         if(Date_TimeZone::isValidID($id)) {
  140.             $this->id = $id;
  141.             $this->longname = $_DATE_TIMEZONE_DATA[$id]['longname'];
  142.             $this->shortname = $_DATE_TIMEZONE_DATA[$id]['shortname'];
  143.             $this->offset = $_DATE_TIMEZONE_DATA[$id]['offset'];
  144.             if($_DATE_TIMEZONE_DATA[$id]['hasdst']) {
  145.                 $this->hasdst = true;
  146.                 $this->dstlongname = $_DATE_TIMEZONE_DATA[$id]['dstlongname'];
  147.                 $this->dstshortname = $_DATE_TIMEZONE_DATA[$id]['dstshortname'];
  148.             } else {
  149.                 $this->hasdst = false;
  150.                 $this->dstlongname = $this->longname;
  151.                 $this->dstshortname = $this->shortname;
  152.             }
  153.         } else {
  154.             $this->id = 'UTC';
  155.             $this->longname = $_DATE_TIMEZONE_DATA[$this->id]['longname'];
  156.             $this->shortname = $_DATE_TIMEZONE_DATA[$this->id]['shortname'];
  157.             $this->hasdst = $_DATE_TIMEZONE_DATA[$this->id]['hasdst'];
  158.             $this->offset = $_DATE_TIMEZONE_DATA[$this->id]['offset'];
  159.         }
  160.     }
  161.  
  162.     // }}}
  163.     // {{{ getDefault()
  164.  
  165.     /**
  166.      * Return a TimeZone object representing the system default time zone
  167.      *
  168.      * Return a TimeZone object representing the system default time zone,
  169.      * which is initialized during the loading of TimeZone.php.
  170.      *
  171.      * @access public
  172.      * @return object Date_TimeZone the default time zone
  173.      */
  174.     function getDefault()
  175.     {
  176.         return new Date_TimeZone($GLOBALS['_DATE_TIMEZONE_DEFAULT']);
  177.     }
  178.  
  179.     // }}}
  180.     // {{{ setDefault()
  181.  
  182.     /**
  183.      * Sets the system default time zone to the time zone in $id
  184.      *
  185.      * Sets the system default time zone to the time zone in $id
  186.      *
  187.      * @access public
  188.      * @param string $id the time zone id to use
  189.      */
  190.     function setDefault($id)
  191.     {
  192.         if(Date_TimeZone::isValidID($id)) {
  193.             $GLOBALS['_DATE_TIMEZONE_DEFAULT'] = $id;
  194.         }
  195.     }
  196.  
  197.     // }}}
  198.     // {{{ isValidID()
  199.  
  200.     /**
  201.      * Tests if given id is represented in the $_DATE_TIMEZONE_DATA time zone data
  202.      *
  203.      * Tests if given id is represented in the $_DATE_TIMEZONE_DATA time zone data
  204.      *
  205.      * @access public
  206.      * @param string $id the id to test
  207.      * @return boolean true if the supplied ID is valid
  208.      */
  209.     function isValidID($id)
  210.     {
  211.         if(isset($GLOBALS['_DATE_TIMEZONE_DATA'][$id])) {
  212.             return true;
  213.         } else {
  214.             return false;
  215.         }
  216.     }
  217.  
  218.     // }}}
  219.     // {{{ isEqual()
  220.  
  221.     /**
  222.      * Is this time zone equal to another
  223.      *
  224.      * Tests to see if this time zone is equal (ids match)
  225.      * to a given Date_TimeZone object.
  226.      *
  227.      * @access public
  228.      * @param object Date_TimeZone $tz the timezone to test
  229.      * @return boolean true if this time zone is equal to the supplied time zone
  230.      */
  231.     function isEqual($tz)
  232.     {
  233.         if(strcasecmp($this->id, $tz->id) == 0) {
  234.             return true;
  235.         } else {
  236.             return false;
  237.         }
  238.     }
  239.  
  240.     // }}}
  241.     // {{{ isEquivalent()
  242.  
  243.     /**
  244.      * Is this time zone equivalent to another
  245.      *
  246.      * Tests to see if this time zone is equivalent to
  247.      * a given time zone object.  Equivalence in this context
  248.      * is defined by the two time zones having an equal raw
  249.      * offset and an equal setting of "hasdst".  This is not true
  250.      * equivalence, as the two time zones may have different rules
  251.      * for the observance of DST, but this implementation does not
  252.      * know DST rules.
  253.      *
  254.      * @access public
  255.      * @param object Date_TimeZone $tz the timezone object to test
  256.      * @return boolean true if this time zone is equivalent to the supplied time zone
  257.      */
  258.     function isEquivalent($tz)
  259.     {
  260.         if($this->offset == $tz->offset && $this->hasdst == $tz->hasdst) {
  261.             return true;
  262.         } else {
  263.             return false;
  264.         }
  265.     }
  266.  
  267.     // }}}
  268.     // {{{ hasDaylightTime()
  269.  
  270.     /**
  271.      * Returns true if this zone observes daylight savings time
  272.      *
  273.      * Returns true if this zone observes daylight savings time
  274.      *
  275.      * @access public
  276.      * @return boolean true if this time zone has DST
  277.      */
  278.     function hasDaylightTime()
  279.     {
  280.         return $this->hasdst;
  281.     }
  282.  
  283.     // }}}
  284.     // {{{ inDaylightTime()
  285.  
  286.     /**
  287.      * Is the given date/time in DST for this time zone
  288.      *
  289.      * Attempts to determine if a given Date object represents a date/time
  290.      * that is in DST for this time zone.  WARNINGS: this basically attempts to
  291.      * "trick" the system into telling us if we're in DST for a given time zone.
  292.      * This uses putenv() which may not work in safe mode, and relies on unix time
  293.      * which is only valid for dates from 1970 to ~2038.  This relies on the
  294.      * underlying OS calls, so it may not work on Windows or on a system where
  295.      * zoneinfo is not installed or configured properly.
  296.      *
  297.      * @access public
  298.      * @param object Date $date the date/time to test
  299.      * @return boolean true if this date is in DST for this time zone
  300.      */
  301.     function inDaylightTime($date)
  302.     {
  303.         $env_tz = '';
  304.         if(isset($_ENV['TZ']) && getenv('TZ')) {
  305.             $env_tz = getenv('TZ');
  306.         }
  307.  
  308.         putenv('TZ=' . $this->id);
  309.         $ltime = localtime($date->getTime(), true);
  310.         if ($env_tz != '') {
  311.             putenv('TZ=' . $env_tz);
  312.         }
  313.         return $ltime['tm_isdst'];
  314.     }
  315.  
  316.     // }}}
  317.     // {{{ getDSTSavings()
  318.  
  319.     /**
  320.      * Get the DST offset for this time zone
  321.      *
  322.      * Returns the DST offset of this time zone, in milliseconds,
  323.      * if the zone observes DST, zero otherwise.  Currently the
  324.      * DST offset is hard-coded to one hour.
  325.      *
  326.      * @access public
  327.      * @return int the DST offset, in milliseconds or zero if the zone does not observe DST
  328.      */
  329.     function getDSTSavings()
  330.     {
  331.         if($this->hasdst) {
  332.             return 3600000;
  333.         } else {
  334.             return 0;
  335.         }
  336.     }
  337.  
  338.     // }}}
  339.     // {{{ getOffset()
  340.  
  341.     /**
  342.      * Get the DST-corrected offset to UTC for the given date
  343.      *
  344.      * Attempts to get the offset to UTC for a given date/time, taking into
  345.      * account daylight savings time, if the time zone observes it and if
  346.      * it is in effect.  Please see the WARNINGS on Date::TimeZone::inDaylightTime().
  347.      *
  348.      *
  349.      * @access public
  350.      * @param object Date $date the Date to test
  351.      * @return int the corrected offset to UTC in milliseconds
  352.      */
  353.     function getOffset($date)
  354.     {
  355.         if($this->inDaylightTime($date)) {
  356.             return $this->offset + $this->getDSTSavings();
  357.         } else {
  358.             return $this->offset;
  359.         }
  360.     }
  361.  
  362.     // }}}
  363.     // {{{ getAvailableIDs()
  364.  
  365.     /**
  366.      * Returns the list of valid time zone id strings
  367.      *
  368.      * Returns the list of valid time zone id strings
  369.      *
  370.      * @access public
  371.      * @return mixed an array of strings with the valid time zone IDs
  372.      */
  373.     function getAvailableIDs()
  374.     {
  375.         return array_keys($GLOBALS['_DATE_TIMEZONE_DATA']);
  376.     }
  377.  
  378.     // }}}
  379.     // {{{ getID()
  380.  
  381.     /**
  382.      * Returns the id for this time zone
  383.      *
  384.      * Returns the time zone id  for this time zone, i.e. "America/Chicago"
  385.      *
  386.      * @access public
  387.      * @return string the id
  388.      */
  389.     function getID()
  390.     {
  391.         return $this->id;
  392.     }
  393.  
  394.     // }}}
  395.     // {{{ getLongName()
  396.  
  397.     /**
  398.      * Returns the long name for this time zone
  399.      *
  400.      * Returns the long name for this time zone,
  401.      * i.e. "Central Standard Time"
  402.      *
  403.      * @access public
  404.      * @return string the long name
  405.      */
  406.     function getLongName()
  407.     {
  408.         return $this->longname;
  409.     }
  410.  
  411.     // }}}
  412.     // {{{ getShortName()
  413.  
  414.     /**
  415.      * Returns the short name for this time zone
  416.      *
  417.      * Returns the short name for this time zone, i.e. "CST"
  418.      *
  419.      * @access public
  420.      * @return string the short name
  421.      */
  422.     function getShortName()
  423.     {
  424.         return $this->shortname;
  425.     }
  426.  
  427.     // }}}
  428.     // {{{ getDSTLongName()
  429.  
  430.     /**
  431.      * Returns the DST long name for this time zone
  432.      *
  433.      * Returns the DST long name for this time zone, i.e. "Central Daylight Time"
  434.      *
  435.      * @access public
  436.      * @return string the daylight savings time long name
  437.      */
  438.     function getDSTLongName()
  439.     {
  440.         return $this->dstlongname;
  441.     }
  442.  
  443.     // }}}
  444.     // {{{ getDSTShortName()
  445.  
  446.     /**
  447.      * Returns the DST short name for this time zone
  448.      *
  449.      * Returns the DST short name for this time zone, i.e. "CDT"
  450.      *
  451.      * @access public
  452.      * @return string the daylight savings time short name
  453.      */
  454.     function getDSTShortName()
  455.     {
  456.         return $this->dstshortname;
  457.     }
  458.  
  459.     // }}}
  460.     // {{{ getRawOffset()
  461.  
  462.     /**
  463.      * Returns the raw (non-DST-corrected) offset from UTC/GMT for this time zone
  464.      *
  465.      * Returns the raw (non-DST-corrected) offset from UTC/GMT for this time zone
  466.      *
  467.      * @access public
  468.      * @return int the offset, in milliseconds
  469.      */
  470.     function getRawOffset()
  471.     {
  472.         return $this->offset;
  473.     }
  474.  
  475.     // }}}
  476. }
  477.  
  478. // }}}
  479.  
  480. /**
  481.  * Time Zone Data offset is in miliseconds
  482.  *
  483.  * @global array $GLOBALS['_DATE_TIMEZONE_DATA']
  484.  */
  485. $GLOBALS['_DATE_TIMEZONE_DATA'] = array(
  486.     'Etc/GMT+12' => array(
  487.         'offset' => -43200000,
  488.         'longname' => 'GMT-12:00',
  489.         'shortname' => 'GMT-12:00',
  490.         'hasdst' => false ),
  491.     'Etc/GMT+11' => array(
  492.         'offset' => -39600000,
  493.         'longname' => 'GMT-11:00',
  494.         'shortname' => 'GMT-11:00',
  495.         'hasdst' => false ),
  496.     'MIT' => array(
  497.         'offset' => -39600000,
  498.         'longname' => 'West Samoa Time',
  499.         'shortname' => 'WST',
  500.         'hasdst' => false ),
  501.     'Pacific/Apia' => array(
  502.         'offset' => -39600000,
  503.         'longname' => 'West Samoa Time',
  504.         'shortname' => 'WST',
  505.         'hasdst' => false ),
  506.     'Pacific/Midway' => array(
  507.         'offset' => -39600000,
  508.         'longname' => 'Samoa Standard Time',
  509.         'shortname' => 'SST',
  510.         'hasdst' => false ),
  511.     'Pacific/Niue' => array(
  512.         'offset' => -39600000,
  513.         'longname' => 'Niue Time',
  514.         'shortname' => 'NUT',
  515.         'hasdst' => false ),
  516.     'Pacific/Pago_Pago' => array(
  517.         'offset' => -39600000,
  518.         'longname' => 'Samoa Standard Time',
  519.         'shortname' => 'SST',
  520.         'hasdst' => false ),
  521.     'Pacific/Samoa' => array(
  522.         'offset' => -39600000,
  523.         'longname' => 'Samoa Standard Time',
  524.         'shortname' => 'SST',
  525.         'hasdst' => false ),
  526.     'US/Samoa' => array(
  527.         'offset' => -39600000,
  528.         'longname' => 'Samoa Standard Time',
  529.         'shortname' => 'SST',
  530.         'hasdst' => false ),
  531.     'America/Adak' => array(
  532.         'offset' => -36000000,
  533.         'longname' => 'Hawaii-Aleutian Standard Time',
  534.         'shortname' => 'HAST',
  535.         'hasdst' => true,
  536.         'dstlongname' => 'Hawaii-Aleutian Daylight Time',
  537.         'dstshortname' => 'HADT' ),
  538.     'America/Atka' => array(
  539.         'offset' => -36000000,
  540.         'longname' => 'Hawaii-Aleutian Standard Time',
  541.         'shortname' => 'HAST',
  542.         'hasdst' => true,
  543.         'dstlongname' => 'Hawaii-Aleutian Daylight Time',
  544.         'dstshortname' => 'HADT' ),
  545.     'Etc/GMT+10' => array(
  546.         'offset' => -36000000,
  547.         'longname' => 'GMT-10:00',
  548.         'shortname' => 'GMT-10:00',
  549.         'hasdst' => false ),
  550.     'HST' => array(
  551.         'offset' => -36000000,
  552.         'longname' => 'Hawaii Standard Time',
  553.         'shortname' => 'HST',
  554.         'hasdst' => false ),
  555.     'Pacific/Fakaofo' => array(
  556.         'offset' => -36000000,
  557.         'longname' => 'Tokelau Time',
  558.         'shortname' => 'TKT',
  559.         'hasdst' => false ),
  560.     'Pacific/Honolulu' => array(
  561.         'offset' => -36000000,
  562.         'longname' => 'Hawaii Standard Time',
  563.         'shortname' => 'HST',
  564.         'hasdst' => false ),
  565.     'Pacific/Johnston' => array(
  566.         'offset' => -36000000,
  567.         'longname' => 'Hawaii Standard Time',
  568.         'shortname' => 'HST',
  569.         'hasdst' => false ),
  570.     'Pacific/Rarotonga' => array(
  571.         'offset' => -36000000,
  572.         'longname' => 'Cook Is. Time',
  573.         'shortname' => 'CKT',
  574.         'hasdst' => false ),
  575.     'Pacific/Tahiti' => array(
  576.         'offset' => -36000000,
  577.         'longname' => 'Tahiti Time',
  578.         'shortname' => 'TAHT',
  579.         'hasdst' => false ),
  580.     'SystemV/HST10' => array(
  581.         'offset' => -36000000,
  582.         'longname' => 'Hawaii Standard Time',
  583.         'shortname' => 'HST',
  584.         'hasdst' => false ),
  585.     'US/Aleutian' => array(
  586.         'offset' => -36000000,
  587.         'longname' => 'Hawaii-Aleutian Standard Time',
  588.         'shortname' => 'HAST',
  589.         'hasdst' => true,
  590.         'dstlongname' => 'Hawaii-Aleutian Daylight Time',
  591.         'dstshortname' => 'HADT' ),
  592.     'US/Hawaii' => array(
  593.         'offset' => -36000000,
  594.         'longname' => 'Hawaii Standard Time',
  595.         'shortname' => 'HST',
  596.         'hasdst' => false ),
  597.     'Pacific/Marquesas' => array(
  598.         'offset' => -34200000,
  599.         'longname' => 'Marquesas Time',
  600.         'shortname' => 'MART',
  601.         'hasdst' => false ),
  602.     'AST' => array(
  603.         'offset' => -32400000,
  604.         'longname' => 'Alaska Standard Time',
  605.         'shortname' => 'AKST',
  606.         'hasdst' => true,
  607.         'dstlongname' => 'Alaska Daylight Time',
  608.         'dstshortname' => 'AKDT' ),
  609.     'America/Anchorage' => array(
  610.         'offset' => -32400000,
  611.         'longname' => 'Alaska Standard Time',
  612.         'shortname' => 'AKST',
  613.         'hasdst' => true,
  614.         'dstlongname' => 'Alaska Daylight Time',
  615.         'dstshortname' => 'AKDT' ),
  616.     'America/Juneau' => array(
  617.         'offset' => -32400000,
  618.         'longname' => 'Alaska Standard Time',
  619.         'shortname' => 'AKST',
  620.         'hasdst' => true,
  621.         'dstlongname' => 'Alaska Daylight Time',
  622.         'dstshortname' => 'AKDT' ),
  623.     'America/Nome' => array(
  624.         'offset' => -32400000,
  625.         'longname' => 'Alaska Standard Time',
  626.         'shortname' => 'AKST',
  627.         'hasdst' => true,
  628.         'dstlongname' => 'Alaska Daylight Time',
  629.         'dstshortname' => 'AKDT' ),
  630.     'America/Yakutat' => array(
  631.         'offset' => -32400000,
  632.         'longname' => 'Alaska Standard Time',
  633.         'shortname' => 'AKST',
  634.         'hasdst' => true,
  635.         'dstlongname' => 'Alaska Daylight Time',
  636.         'dstshortname' => 'AKDT' ),
  637.     'Etc/GMT+9' => array(
  638.         'offset' => -32400000,
  639.         'longname' => 'GMT-09:00',
  640.         'shortname' => 'GMT-09:00',
  641.         'hasdst' => false ),
  642.     'Pacific/Gambier' => array(
  643.         'offset' => -32400000,
  644.         'longname' => 'Gambier Time',
  645.         'shortname' => 'GAMT',
  646.         'hasdst' => false ),
  647.     'SystemV/YST9' => array(
  648.         'offset' => -32400000,
  649.         'longname' => 'Gambier Time',
  650.         'shortname' => 'GAMT',
  651.         'hasdst' => false ),
  652.     'SystemV/YST9YDT' => array(
  653.         'offset' => -32400000,
  654.         'longname' => 'Alaska Standard Time',
  655.         'shortname' => 'AKST',
  656.         'hasdst' => true,
  657.         'dstlongname' => 'Alaska Daylight Time',
  658.         'dstshortname' => 'AKDT' ),
  659.     'US/Alaska' => array(
  660.         'offset' => -32400000,
  661.         'longname' => 'Alaska Standard Time',
  662.         'shortname' => 'AKST',
  663.         'hasdst' => true,
  664.         'dstlongname' => 'Alaska Daylight Time',
  665.         'dstshortname' => 'AKDT' ),
  666.     'America/Dawson' => array(
  667.         'offset' => -28800000,
  668.         'longname' => 'Pacific Standard Time',
  669.         'shortname' => 'PST',
  670.         'hasdst' => true,
  671.         'dstlongname' => 'Pacific Daylight Time',
  672.         'dstshortname' => 'PDT' ),
  673.     'America/Ensenada' => array(
  674.         'offset' => -28800000,
  675.         'longname' => 'Pacific Standard Time',
  676.         'shortname' => 'PST',
  677.         'hasdst' => true,
  678.         'dstlongname' => 'Pacific Daylight Time',
  679.         'dstshortname' => 'PDT' ),
  680.     'America/Los_Angeles' => array(
  681.         'offset' => -28800000,
  682.         'longname' => 'Pacific Standard Time',
  683.         'shortname' => 'PST',
  684.         'hasdst' => true,
  685.         'dstlongname' => 'Pacific Daylight Time',
  686.         'dstshortname' => 'PDT' ),
  687.     'America/Tijuana' => array(
  688.         'offset' => -28800000,
  689.         'longname' => 'Pacific Standard Time',
  690.         'shortname' => 'PST',
  691.         'hasdst' => true,
  692.         'dstlongname' => 'Pacific Daylight Time',
  693.         'dstshortname' => 'PDT' ),
  694.     'America/Vancouver' => array(
  695.         'offset' => -28800000,
  696.         'longname' => 'Pacific Standard Time',
  697.         'shortname' => 'PST',
  698.         'hasdst' => true,
  699.         'dstlongname' => 'Pacific Daylight Time',
  700.         'dstshortname' => 'PDT' ),
  701.     'America/Whitehorse' => array(
  702.         'offset' => -28800000,
  703.         'longname' => 'Pacific Standard Time',
  704.         'shortname' => 'PST',
  705.         'hasdst' => true,
  706.         'dstlongname' => 'Pacific Daylight Time',
  707.         'dstshortname' => 'PDT' ),
  708.     'Canada/Pacific' => array(
  709.         'offset' => -28800000,
  710.         'longname' => 'Pacific Standard Time',
  711.         'shortname' => 'PST',
  712.         'hasdst' => true,
  713.         'dstlongname' => 'Pacific Daylight Time',
  714.         'dstshortname' => 'PDT' ),
  715.     'Canada/Yukon' => array(
  716.         'offset' => -28800000,
  717.         'longname' => 'Pacific Standard Time',
  718.         'shortname' => 'PST',
  719.         'hasdst' => true,
  720.         'dstlongname' => 'Pacific Daylight Time',
  721.         'dstshortname' => 'PDT' ),
  722.     'Etc/GMT+8' => array(
  723.         'offset' => -28800000,
  724.         'longname' => 'GMT-08:00',
  725.         'shortname' => 'GMT-08:00',
  726.         'hasdst' => false ),
  727.     'Mexico/BajaNorte' => array(
  728.         'offset' => -28800000,
  729.         'longname' => 'Pacific Standard Time',
  730.         'shortname' => 'PST',
  731.         'hasdst' => true,
  732.         'dstlongname' => 'Pacific Daylight Time',
  733.         'dstshortname' => 'PDT' ),
  734.     'PST' => array(
  735.         'offset' => -28800000,
  736.         'longname' => 'Pacific Standard Time',
  737.         'shortname' => 'PST',
  738.         'hasdst' => true,
  739.         'dstlongname' => 'Pacific Daylight Time',
  740.         'dstshortname' => 'PDT' ),
  741.     'PST8PDT' => array(
  742.         'offset' => -28800000,
  743.         'longname' => 'Pacific Standard Time',
  744.         'shortname' => 'PST',
  745.         'hasdst' => true,
  746.         'dstlongname' => 'Pacific Daylight Time',
  747.         'dstshortname' => 'PDT' ),
  748.     'Pacific/Pitcairn' => array(
  749.         'offset' => -28800000,
  750.         'longname' => 'Pitcairn Standard Time',
  751.         'shortname' => 'PST',
  752.         'hasdst' => false ),
  753.     'SystemV/PST8' => array(
  754.         'offset' => -28800000,
  755.         'longname' => 'Pitcairn Standard Time',
  756.         'shortname' => 'PST',
  757.         'hasdst' => false ),
  758.     'SystemV/PST8PDT' => array(
  759.         'offset' => -28800000,
  760.         'longname' => 'Pacific Standard Time',
  761.         'shortname' => 'PST',
  762.         'hasdst' => true,
  763.         'dstlongname' => 'Pacific Daylight Time',
  764.         'dstshortname' => 'PDT' ),
  765.     'US/Pacific' => array(
  766.         'offset' => -28800000,
  767.         'longname' => 'Pacific Standard Time',
  768.         'shortname' => 'PST',
  769.         'hasdst' => true,
  770.         'dstlongname' => 'Pacific Daylight Time',
  771.         'dstshortname' => 'PDT' ),
  772.     'US/Pacific-New' => array(
  773.         'offset' => -28800000,
  774.         'longname' => 'Pacific Standard Time',
  775.         'shortname' => 'PST',
  776.         'hasdst' => true,
  777.         'dstlongname' => 'Pacific Daylight Time',
  778.         'dstshortname' => 'PDT' ),
  779.     'America/Boise' => array(
  780.         'offset' => -25200000,
  781.         'longname' => 'Mountain Standard Time',
  782.         'shortname' => 'MST',
  783.         'hasdst' => true,
  784.         'dstlongname' => 'Mountain Daylight Time',
  785.         'dstshortname' => 'MDT' ),
  786.     'America/Cambridge_Bay' => array(
  787.         'offset' => -25200000,
  788.         'longname' => 'Mountain Standard Time',
  789.         'shortname' => 'MST',
  790.         'hasdst' => true,
  791.         'dstlongname' => 'Mountain Daylight Time',
  792.         'dstshortname' => 'MDT' ),
  793.     'America/Chihuahua' => array(
  794.         'offset' => -25200000,
  795.         'longname' => 'Mountain Standard Time',
  796.         'shortname' => 'MST',
  797.         'hasdst' => true,
  798.         'dstlongname' => 'Mountain Daylight Time',
  799.         'dstshortname' => 'MDT' ),
  800.     'America/Dawson_Creek' => array(
  801.         'offset' => -25200000,
  802.         'longname' => 'Mountain Standard Time',
  803.         'shortname' => 'MST',
  804.         'hasdst' => false ),
  805.     'America/Denver' => array(
  806.         'offset' => -25200000,
  807.         'longname' => 'Mountain Standard Time',
  808.         'shortname' => 'MST',
  809.         'hasdst' => true,
  810.         'dstlongname' => 'Mountain Daylight Time',
  811.         'dstshortname' => 'MDT' ),
  812.     'America/Edmonton' => array(
  813.         'offset' => -25200000,
  814.         'longname' => 'Mountain Standard Time',
  815.         'shortname' => 'MST',
  816.         'hasdst' => true,
  817.         'dstlongname' => 'Mountain Daylight Time',
  818.         'dstshortname' => 'MDT' ),
  819.     'America/Hermosillo' => array(
  820.         'offset' => -25200000,
  821.         'longname' => 'Mountain Standard Time',
  822.         'shortname' => 'MST',
  823.         'hasdst' => false ),
  824.     'America/Inuvik' => array(
  825.         'offset' => -25200000,
  826.         'longname' => 'Mountain Standard Time',
  827.         'shortname' => 'MST',
  828.         'hasdst' => true,
  829.         'dstlongname' => 'Mountain Daylight Time',
  830.         'dstshortname' => 'MDT' ),
  831.     'America/Mazatlan' => array(
  832.         'offset' => -25200000,
  833.         'longname' => 'Mountain Standard Time',
  834.         'shortname' => 'MST',
  835.         'hasdst' => true,
  836.         'dstlongname' => 'Mountain Daylight Time',
  837.         'dstshortname' => 'MDT' ),
  838.     'America/Phoenix' => array(
  839.         'offset' => -25200000,
  840.         'longname' => 'Mountain Standard Time',
  841.         'shortname' => 'MST',
  842.         'hasdst' => false ),
  843.     'America/Shiprock' => array(
  844.         'offset' => -25200000,
  845.         'longname' => 'Mountain Standard Time',
  846.         'shortname' => 'MST',
  847.         'hasdst' => true,
  848.         'dstlongname' => 'Mountain Daylight Time',
  849.         'dstshortname' => 'MDT' ),
  850.     'America/Yellowknife' => array(
  851.         'offset' => -25200000,
  852.         'longname' => 'Mountain Standard Time',
  853.         'shortname' => 'MST',
  854.         'hasdst' => true,
  855.         'dstlongname' => 'Mountain Daylight Time',
  856.         'dstshortname' => 'MDT' ),
  857.     'Canada/Mountain' => array(
  858.         'offset' => -25200000,
  859.         'longname' => 'Mountain Standard Time',
  860.         'shortname' => 'MST',
  861.         'hasdst' => true,
  862.         'dstlongname' => 'Mountain Daylight Time',
  863.         'dstshortname' => 'MDT' ),
  864.     'Etc/GMT+7' => array(
  865.         'offset' => -25200000,
  866.         'longname' => 'GMT-07:00',
  867.         'shortname' => 'GMT-07:00',
  868.         'hasdst' => false ),
  869.     'MST' => array(
  870.         'offset' => -25200000,
  871.         'longname' => 'Mountain Standard Time',
  872.         'shortname' => 'MST',
  873.         'hasdst' => true,
  874.         'dstlongname' => 'Mountain Daylight Time',
  875.         'dstshortname' => 'MDT' ),
  876.     'MST7MDT' => array(
  877.         'offset' => -25200000,
  878.         'longname' => 'Mountain Standard Time',
  879.         'shortname' => 'MST',
  880.         'hasdst' => true,
  881.         'dstlongname' => 'Mountain Daylight Time',
  882.         'dstshortname' => 'MDT' ),
  883.     'Mexico/BajaSur' => array(
  884.         'offset' => -25200000,
  885.         'longname' => 'Mountain Standard Time',
  886.         'shortname' => 'MST',
  887.         'hasdst' => true,
  888.         'dstlongname' => 'Mountain Daylight Time',
  889.         'dstshortname' => 'MDT' ),
  890.     'Navajo' => array(
  891.         'offset' => -25200000,
  892.         'longname' => 'Mountain Standard Time',
  893.         'shortname' => 'MST',
  894.         'hasdst' => true,
  895.         'dstlongname' => 'Mountain Daylight Time',
  896.         'dstshortname' => 'MDT' ),
  897.     'PNT' => array(
  898.         'offset' => -25200000,
  899.         'longname' => 'Mountain Standard Time',
  900.         'shortname' => 'MST',
  901.         'hasdst' => false ),
  902.     'SystemV/MST7' => array(
  903.         'offset' => -25200000,
  904.         'longname' => 'Mountain Standard Time',
  905.         'shortname' => 'MST',
  906.         'hasdst' => false ),
  907.     'SystemV/MST7MDT' => array(
  908.         'offset' => -25200000,
  909.         'longname' => 'Mountain Standard Time',
  910.         'shortname' => 'MST',
  911.         'hasdst' => true,
  912.         'dstlongname' => 'Mountain Daylight Time',
  913.         'dstshortname' => 'MDT' ),
  914.     'US/Arizona' => array(
  915.         'offset' => -25200000,
  916.         'longname' => 'Mountain Standard Time',
  917.         'shortname' => 'MST',
  918.         'hasdst' => false ),
  919.     'US/Mountain' => array(
  920.         'offset' => -25200000,
  921.         'longname' => 'Mountain Standard Time',
  922.         'shortname' => 'MST',
  923.         'hasdst' => true,
  924.         'dstlongname' => 'Mountain Daylight Time',
  925.         'dstshortname' => 'MDT' ),
  926.     'America/Belize' => array(
  927.         'offset' => -21600000,
  928.         'longname' => 'Central Standard Time',
  929.         'shortname' => 'CST',
  930.         'hasdst' => false ),
  931.     'America/Cancun' => array(
  932.         'offset' => -21600000,
  933.         'longname' => 'Central Standard Time',
  934.         'shortname' => 'CST',
  935.         'hasdst' => true,
  936.         'dstlongname' => 'Central Daylight Time',
  937.         'dstshortname' => 'CDT' ),
  938.     'America/Chicago' => array(
  939.         'offset' => -21600000,
  940.         'longname' => 'Central Standard Time',
  941.         'shortname' => 'CST',
  942.         'hasdst' => true,
  943.         'dstlongname' => 'Central Daylight Time',
  944.         'dstshortname' => 'CDT' ),
  945.     'America/Costa_Rica' => array(
  946.         'offset' => -21600000,
  947.         'longname' => 'Central Standard Time',
  948.         'shortname' => 'CST',
  949.         'hasdst' => false ),
  950.     'America/El_Salvador' => array(
  951.         'offset' => -21600000,
  952.         'longname' => 'Central Standard Time',
  953.         'shortname' => 'CST',
  954.         'hasdst' => false ),
  955.     'America/Guatemala' => array(
  956.         'offset' => -21600000,
  957.         'longname' => 'Central Standard Time',
  958.         'shortname' => 'CST',
  959.         'hasdst' => false ),
  960.     'America/Managua' => array(
  961.         'offset' => -21600000,
  962.         'longname' => 'Central Standard Time',
  963.         'shortname' => 'CST',
  964.         'hasdst' => false ),
  965.     'America/Menominee' => array(
  966.         'offset' => -21600000,
  967.         'longname' => 'Central Standard Time',
  968.         'shortname' => 'CST',
  969.         'hasdst' => true,
  970.         'dstlongname' => 'Central Daylight Time',
  971.         'dstshortname' => 'CDT' ),
  972.     'America/Merida' => array(
  973.         'offset' => -21600000,
  974.         'longname' => 'Central Standard Time',
  975.         'shortname' => 'CST',
  976.         'hasdst' => true,
  977.         'dstlongname' => 'Central Daylight Time',
  978.         'dstshortname' => 'CDT' ),
  979.     'America/Mexico_City' => array(
  980.         'offset' => -21600000,
  981.         'longname' => 'Central Standard Time',
  982.         'shortname' => 'CST',
  983.         'hasdst' => false ),
  984.     'America/Monterrey' => array(
  985.         'offset' => -21600000,
  986.         'longname' => 'Central Standard Time',
  987.         'shortname' => 'CST',
  988.         'hasdst' => true,
  989.         'dstlongname' => 'Central Daylight Time',
  990.         'dstshortname' => 'CDT' ),
  991.     'America/North_Dakota/Center' => array(
  992.         'offset' => -21600000,
  993.         'longname' => 'Central Standard Time',
  994.         'shortname' => 'CST',
  995.         'hasdst' => true,
  996.         'dstlongname' => 'Central Daylight Time',
  997.         'dstshortname' => 'CDT' ),
  998.     'America/Rainy_River' => array(
  999.         'offset' => -21600000,
  1000.         'longname' => 'Central Standard Time',
  1001.         'shortname' => 'CST',
  1002.         'hasdst' => true,
  1003.         'dstlongname' => 'Central Daylight Time',
  1004.         'dstshortname' => 'CDT' ),
  1005.     'America/Rankin_Inlet' => array(
  1006.         'offset' => -21600000,
  1007.         'longname' => 'Eastern Standard Time',
  1008.         'shortname' => 'EST',
  1009.         'hasdst' => true,
  1010.         'dstlongname' => 'Eastern Daylight Time',
  1011.         'dstshortname' => 'EDT' ),
  1012.     'America/Regina' => array(
  1013.         'offset' => -21600000,
  1014.         'longname' => 'Central Standard Time',
  1015.         'shortname' => 'CST',
  1016.         'hasdst' => false ),
  1017.     'America/Swift_Current' => array(
  1018.         'offset' => -21600000,
  1019.         'longname' => 'Central Standard Time',
  1020.         'shortname' => 'CST',
  1021.         'hasdst' => false ),
  1022.     'America/Tegucigalpa' => array(
  1023.         'offset' => -21600000,
  1024.         'longname' => 'Central Standard Time',
  1025.         'shortname' => 'CST',
  1026.         'hasdst' => false ),
  1027.     'America/Winnipeg' => array(
  1028.         'offset' => -21600000,
  1029.         'longname' => 'Central Standard Time',
  1030.         'shortname' => 'CST',
  1031.         'hasdst' => true,
  1032.         'dstlongname' => 'Central Daylight Time',
  1033.         'dstshortname' => 'CDT' ),
  1034.     'CST' => array(
  1035.         'offset' => -21600000,
  1036.         'longname' => 'Central Standard Time',
  1037.         'shortname' => 'CST',
  1038.         'hasdst' => true,
  1039.         'dstlongname' => 'Central Daylight Time',
  1040.         'dstshortname' => 'CDT' ),
  1041.     'CST6CDT' => array(
  1042.         'offset' => -21600000,
  1043.         'longname' => 'Central Standard Time',
  1044.         'shortname' => 'CST',
  1045.         'hasdst' => true,
  1046.         'dstlongname' => 'Central Daylight Time',
  1047.         'dstshortname' => 'CDT' ),
  1048.     'Canada/Central' => array(
  1049.         'offset' => -21600000,
  1050.         'longname' => 'Central Standard Time',
  1051.         'shortname' => 'CST',
  1052.         'hasdst' => true,
  1053.         'dstlongname' => 'Central Daylight Time',
  1054.         'dstshortname' => 'CDT' ),
  1055.     'Canada/East-Saskatchewan' => array(
  1056.         'offset' => -21600000,
  1057.         'longname' => 'Central Standard Time',
  1058.         'shortname' => 'CST',
  1059.         'hasdst' => false ),
  1060.     'Canada/Saskatchewan' => array(
  1061.         'offset' => -21600000,
  1062.         'longname' => 'Central Standard Time',
  1063.         'shortname' => 'CST',
  1064.         'hasdst' => false ),
  1065.     'Chile/EasterIsland' => array(
  1066.         'offset' => -21600000,
  1067.         'longname' => 'Easter Is. Time',
  1068.         'shortname' => 'EAST',
  1069.         'hasdst' => true,
  1070.         'dstlongname' => 'Easter Is. Summer Time',
  1071.         'dstshortname' => 'EASST' ),
  1072.     'Etc/GMT+6' => array(
  1073.         'offset' => -21600000,
  1074.         'longname' => 'GMT-06:00',
  1075.         'shortname' => 'GMT-06:00',
  1076.         'hasdst' => false ),
  1077.     'Mexico/General' => array(
  1078.         'offset' => -21600000,
  1079.         'longname' => 'Central Standard Time',
  1080.         'shortname' => 'CST',
  1081.         'hasdst' => false ),
  1082.     'Pacific/Easter' => array(
  1083.         'offset' => -21600000,
  1084.         'longname' => 'Easter Is. Time',
  1085.         'shortname' => 'EAST',
  1086.         'hasdst' => true,
  1087.         'dstlongname' => 'Easter Is. Summer Time',
  1088.         'dstshortname' => 'EASST' ),
  1089.     'Pacific/Galapagos' => array(
  1090.         'offset' => -21600000,
  1091.         'longname' => 'Galapagos Time',
  1092.         'shortname' => 'GALT',
  1093.         'hasdst' => false ),
  1094.     'SystemV/CST6' => array(
  1095.         'offset' => -21600000,
  1096.         'longname' => 'Central Standard Time',
  1097.         'shortname' => 'CST',
  1098.         'hasdst' => false ),
  1099.     'SystemV/CST6CDT' => array(
  1100.         'offset' => -21600000,
  1101.         'longname' => 'Central Standard Time',
  1102.         'shortname' => 'CST',
  1103.         'hasdst' => true,
  1104.         'dstlongname' => 'Central Daylight Time',
  1105.         'dstshortname' => 'CDT' ),
  1106.     'US/Central' => array(
  1107.         'offset' => -21600000,
  1108.         'longname' => 'Central Standard Time',
  1109.         'shortname' => 'CST',
  1110.         'hasdst' => true,
  1111.         'dstlongname' => 'Central Daylight Time',
  1112.         'dstshortname' => 'CDT' ),
  1113.     'America/Bogota' => array(
  1114.         'offset' => -18000000,
  1115.         'longname' => 'Colombia Time',
  1116.         'shortname' => 'COT',
  1117.         'hasdst' => false ),
  1118.     'America/Cayman' => array(
  1119.         'offset' => -18000000,
  1120.         'longname' => 'Eastern Standard Time',
  1121.         'shortname' => 'EST',
  1122.         'hasdst' => false ),
  1123.     'America/Detroit' => array(
  1124.         'offset' => -18000000,
  1125.         'longname' => 'Eastern Standard Time',
  1126.         'shortname' => 'EST',
  1127.         'hasdst' => true,
  1128.         'dstlongname' => 'Eastern Daylight Time',
  1129.         'dstshortname' => 'EDT' ),
  1130.     'America/Eirunepe' => array(
  1131.         'offset' => -18000000,
  1132.         'longname' => 'Acre Time',
  1133.         'shortname' => 'ACT',
  1134.         'hasdst' => false ),
  1135.     'America/Fort_Wayne' => array(
  1136.         'offset' => -18000000,
  1137.         'longname' => 'Eastern Standard Time',
  1138.         'shortname' => 'EST',
  1139.         'hasdst' => false ),
  1140.     'America/Grand_Turk' => array(
  1141.         'offset' => -18000000,
  1142.         'longname' => 'Eastern Standard Time',
  1143.         'shortname' => 'EST',
  1144.         'hasdst' => true,
  1145.         'dstlongname' => 'Eastern Daylight Time',
  1146.         'dstshortname' => 'EDT' ),
  1147.     'America/Guayaquil' => array(
  1148.         'offset' => -18000000,
  1149.         'longname' => 'Ecuador Time',
  1150.         'shortname' => 'ECT',
  1151.         'hasdst' => false ),
  1152.     'America/Havana' => array(
  1153.         'offset' => -18000000,
  1154.         'longname' => 'Central Standard Time',
  1155.         'shortname' => 'CST',
  1156.         'hasdst' => true,
  1157.         'dstlongname' => 'Central Daylight Time',
  1158.         'dstshortname' => 'CDT' ),
  1159.     'America/Indiana/Indianapolis' => array(
  1160.         'offset' => -18000000,
  1161.         'longname' => 'Eastern Standard Time',
  1162.         'shortname' => 'EST',
  1163.         'hasdst' => false ),
  1164.     'America/Indiana/Knox' => array(
  1165.         'offset' => -18000000,
  1166.         'longname' => 'Eastern Standard Time',
  1167.         'shortname' => 'EST',
  1168.         'hasdst' => false ),
  1169.     'America/Indiana/Marengo' => array(
  1170.         'offset' => -18000000,
  1171.         'longname' => 'Eastern Standard Time',
  1172.         'shortname' => 'EST',
  1173.         'hasdst' => false ),
  1174.     'America/Indiana/Vevay' => array(
  1175.         'offset' => -18000000,
  1176.         'longname' => 'Eastern Standard Time',
  1177.         'shortname' => 'EST',
  1178.         'hasdst' => false ),
  1179.     'America/Indianapolis' => array(
  1180.         'offset' => -18000000,
  1181.         'longname' => 'Eastern Standard Time',
  1182.         'shortname' => 'EST',
  1183.         'hasdst' => false ),
  1184.     'America/Iqaluit' => array(
  1185.         'offset' => -18000000,
  1186.         'longname' => 'Eastern Standard Time',
  1187.         'shortname' => 'EST',
  1188.         'hasdst' => true,
  1189.         'dstlongname' => 'Eastern Daylight Time',
  1190.         'dstshortname' => 'EDT' ),
  1191.     'America/Jamaica' => array(
  1192.         'offset' => -18000000,
  1193.         'longname' => 'Eastern Standard Time',
  1194.         'shortname' => 'EST',
  1195.         'hasdst' => false ),
  1196.     'America/Kentucky/Louisville' => array(
  1197.         'offset' => -18000000,
  1198.         'longname' => 'Eastern Standard Time',
  1199.         'shortname' => 'EST',
  1200.         'hasdst' => true,
  1201.         'dstlongname' => 'Eastern Daylight Time',
  1202.         'dstshortname' => 'EDT' ),
  1203.     'America/Kentucky/Monticello' => array(
  1204.         'offset' => -18000000,
  1205.         'longname' => 'Eastern Standard Time',
  1206.         'shortname' => 'EST',
  1207.         'hasdst' => true,
  1208.         'dstlongname' => 'Eastern Daylight Time',
  1209.         'dstshortname' => 'EDT' ),
  1210.     'America/Knox_IN' => array(
  1211.         'offset' => -18000000,
  1212.         'longname' => 'Eastern Standard Time',
  1213.         'shortname' => 'EST',
  1214.         'hasdst' => false ),
  1215.     'America/Lima' => array(
  1216.         'offset' => -18000000,
  1217.         'longname' => 'Peru Time',
  1218.         'shortname' => 'PET',
  1219.         'hasdst' => false ),
  1220.     'America/Louisville' => array(
  1221.         'offset' => -18000000,
  1222.         'longname' => 'Eastern Standard Time',
  1223.         'shortname' => 'EST',
  1224.         'hasdst' => true,
  1225.         'dstlongname' => 'Eastern Daylight Time',
  1226.         'dstshortname' => 'EDT' ),
  1227.     'America/Montreal' => array(
  1228.         'offset' => -18000000,
  1229.         'longname' => 'Eastern Standard Time',
  1230.         'shortname' => 'EST',
  1231.         'hasdst' => true,
  1232.         'dstlongname' => 'Eastern Daylight Time',
  1233.         'dstshortname' => 'EDT' ),
  1234.     'America/Nassau' => array(
  1235.         'offset' => -18000000,
  1236.         'longname' => 'Eastern Standard Time',
  1237.         'shortname' => 'EST',
  1238.         'hasdst' => true,
  1239.         'dstlongname' => 'Eastern Daylight Time',
  1240.         'dstshortname' => 'EDT' ),
  1241.     'America/New_York' => array(
  1242.         'offset' => -18000000,
  1243.         'longname' => 'Eastern Standard Time',
  1244.         'shortname' => 'EST',
  1245.         'hasdst' => true,
  1246.         'dstlongname' => 'Eastern Daylight Time',
  1247.         'dstshortname' => 'EDT' ),
  1248.     'America/Nipigon' => array(
  1249.         'offset' => -18000000,
  1250.         'longname' => 'Eastern Standard Time',
  1251.         'shortname' => 'EST',
  1252.         'hasdst' => true,
  1253.         'dstlongname' => 'Eastern Daylight Time',
  1254.         'dstshortname' => 'EDT' ),
  1255.     'America/Panama' => array(
  1256.         'offset' => -18000000,
  1257.         'longname' => 'Eastern Standard Time',
  1258.         'shortname' => 'EST',
  1259.         'hasdst' => false ),
  1260.     'America/Pangnirtung' => array(
  1261.         'offset' => -18000000,
  1262.         'longname' => 'Eastern Standard Time',
  1263.         'shortname' => 'EST',
  1264.         'hasdst' => true,
  1265.         'dstlongname' => 'Eastern Daylight Time',
  1266.         'dstshortname' => 'EDT' ),
  1267.     'America/Port-au-Prince' => array(
  1268.         'offset' => -18000000,
  1269.         'longname' => 'Eastern Standard Time',
  1270.         'shortname' => 'EST',
  1271.         'hasdst' => false ),
  1272.     'America/Porto_Acre' => array(
  1273.         'offset' => -18000000,
  1274.         'longname' => 'Acre Time',
  1275.         'shortname' => 'ACT',
  1276.         'hasdst' => false ),
  1277.     'America/Rio_Branco' => array(
  1278.         'offset' => -18000000,
  1279.         'longname' => 'Acre Time',
  1280.         'shortname' => 'ACT',
  1281.         'hasdst' => false ),
  1282.     'America/Thunder_Bay' => array(
  1283.         'offset' => -18000000,
  1284.         'longname' => 'Eastern Standard Time',
  1285.         'shortname' => 'EST',
  1286.         'hasdst' => true,
  1287.         'dstlongname' => 'Eastern Daylight Time',
  1288.         'dstshortname' => 'EDT' ),
  1289.     'Brazil/Acre' => array(
  1290.         'offset' => -18000000,
  1291.         'longname' => 'Acre Time',
  1292.         'shortname' => 'ACT',
  1293.         'hasdst' => false ),
  1294.     'Canada/Eastern' => array(
  1295.         'offset' => -18000000,
  1296.         'longname' => 'Eastern Standard Time',
  1297.         'shortname' => 'EST',
  1298.         'hasdst' => true,
  1299.         'dstlongname' => 'Eastern Daylight Time',
  1300.         'dstshortname' => 'EDT' ),
  1301.     'Cuba' => array(
  1302.         'offset' => -18000000,
  1303.         'longname' => 'Central Standard Time',
  1304.         'shortname' => 'CST',
  1305.         'hasdst' => true,
  1306.         'dstlongname' => 'Central Daylight Time',
  1307.         'dstshortname' => 'CDT' ),
  1308.     'EST' => array(
  1309.         'offset' => -18000000,
  1310.         'longname' => 'Eastern Standard Time',
  1311.         'shortname' => 'EST',
  1312.         'hasdst' => true,
  1313.         'dstlongname' => 'Eastern Daylight Time',
  1314.         'dstshortname' => 'EDT' ),
  1315.     'EST5EDT' => array(
  1316.         'offset' => -18000000,
  1317.         'longname' => 'Eastern Standard Time',
  1318.         'shortname' => 'EST',
  1319.         'hasdst' => true,
  1320.         'dstlongname' => 'Eastern Daylight Time',
  1321.         'dstshortname' => 'EDT' ),
  1322.     'Etc/GMT+5' => array(
  1323.         'offset' => -18000000,
  1324.         'longname' => 'GMT-05:00',
  1325.         'shortname' => 'GMT-05:00',
  1326.         'hasdst' => false ),
  1327.     'IET' => array(
  1328.         'offset' => -18000000,
  1329.         'longname' => 'Eastern Standard Time',
  1330.         'shortname' => 'EST',
  1331.         'hasdst' => false ),
  1332.     'Jamaica' => array(
  1333.         'offset' => -18000000,
  1334.         'longname' => 'Eastern Standard Time',
  1335.         'shortname' => 'EST',
  1336.         'hasdst' => false ),
  1337.     'SystemV/EST5' => array(
  1338.         'offset' => -18000000,
  1339.         'longname' => 'Eastern Standard Time',
  1340.         'shortname' => 'EST',
  1341.         'hasdst' => false ),
  1342.     'SystemV/EST5EDT' => array(
  1343.         'offset' => -18000000,
  1344.         'longname' => 'Eastern Standard Time',
  1345.         'shortname' => 'EST',
  1346.         'hasdst' => true,
  1347.         'dstlongname' => 'Eastern Daylight Time',
  1348.         'dstshortname' => 'EDT' ),
  1349.     'US/East-Indiana' => array(
  1350.         'offset' => -18000000,
  1351.         'longname' => 'Eastern Standard Time',
  1352.         'shortname' => 'EST',
  1353.         'hasdst' => false ),
  1354.     'US/Eastern' => array(
  1355.         'offset' => -18000000,
  1356.         'longname' => 'Eastern Standard Time',
  1357.         'shortname' => 'EST',
  1358.         'hasdst' => true,
  1359.         'dstlongname' => 'Eastern Daylight Time',
  1360.         'dstshortname' => 'EDT' ),
  1361.     'US/Indiana-Starke' => array(
  1362.         'offset' => -18000000,
  1363.         'longname' => 'Eastern Standard Time',
  1364.         'shortname' => 'EST',
  1365.         'hasdst' => false ),
  1366.     'US/Michigan' => array(
  1367.         'offset' => -18000000,
  1368.         'longname' => 'Eastern Standard Time',
  1369.         'shortname' => 'EST',
  1370.         'hasdst' => true,
  1371.         'dstlongname' => 'Eastern Daylight Time',
  1372.         'dstshortname' => 'EDT' ),
  1373.     'America/Anguilla' => array(
  1374.         'offset' => -14400000,
  1375.         'longname' => 'Atlantic Standard Time',
  1376.         'shortname' => 'AST',
  1377.         'hasdst' => false ),
  1378.     'America/Antigua' => array(
  1379.         'offset' => -14400000,
  1380.         'longname' => 'Atlantic Standard Time',
  1381.         'shortname' => 'AST',
  1382.         'hasdst' => false ),
  1383.     'America/Aruba' => array(
  1384.         'offset' => -14400000,
  1385.         'longname' => 'Atlantic Standard Time',
  1386.         'shortname' => 'AST',
  1387.         'hasdst' => false ),
  1388.     'America/Asuncion' => array(
  1389.         'offset' => -14400000,
  1390.         'longname' => 'Paraguay Time',
  1391.         'shortname' => 'PYT',
  1392.         'hasdst' => true,
  1393.         'dstlongname' => 'Paraguay Summer Time',
  1394.         'dstshortname' => 'PYST' ),
  1395.     'America/Barbados' => array(
  1396.         'offset' => -14400000,
  1397.         'longname' => 'Atlantic Standard Time',
  1398.         'shortname' => 'AST',
  1399.         'hasdst' => false ),
  1400.     'America/Boa_Vista' => array(
  1401.         'offset' => -14400000,
  1402.         'longname' => 'Amazon Standard Time',
  1403.         'shortname' => 'AMT',
  1404.         'hasdst' => false ),
  1405.     'America/Caracas' => array(
  1406.         'offset' => -14400000,
  1407.         'longname' => 'Venezuela Time',
  1408.         'shortname' => 'VET',
  1409.         'hasdst' => false ),
  1410.     'America/Cuiaba' => array(
  1411.         'offset' => -14400000,
  1412.         'longname' => 'Amazon Standard Time',
  1413.         'shortname' => 'AMT',
  1414.         'hasdst' => true,
  1415.         'dstlongname' => 'Amazon Summer Time',
  1416.         'dstshortname' => 'AMST' ),
  1417.     'America/Curacao' => array(
  1418.         'offset' => -14400000,
  1419.         'longname' => 'Atlantic Standard Time',
  1420.         'shortname' => 'AST',
  1421.         'hasdst' => false ),
  1422.     'America/Dominica' => array(
  1423.         'offset' => -14400000,
  1424.         'longname' => 'Atlantic Standard Time',
  1425.         'shortname' => 'AST',
  1426.         'hasdst' => false ),
  1427.     'America/Glace_Bay' => array(
  1428.         'offset' => -14400000,
  1429.         'longname' => 'Atlantic Standard Time',
  1430.         'shortname' => 'AST',
  1431.         'hasdst' => true,
  1432.         'dstlongname' => 'Atlantic Daylight Time',
  1433.         'dstshortname' => 'ADT' ),
  1434.     'America/Goose_Bay' => array(
  1435.         'offset' => -14400000,
  1436.         'longname' => 'Atlantic Standard Time',
  1437.         'shortname' => 'AST',
  1438.         'hasdst' => true,
  1439.         'dstlongname' => 'Atlantic Daylight Time',
  1440.         'dstshortname' => 'ADT' ),
  1441.     'America/Grenada' => array(
  1442.         'offset' => -14400000,
  1443.         'longname' => 'Atlantic Standard Time',
  1444.         'shortname' => 'AST',
  1445.         'hasdst' => false ),
  1446.     'America/Guadeloupe' => array(
  1447.         'offset' => -14400000,
  1448.         'longname' => 'Atlantic Standard Time',
  1449.         'shortname' => 'AST',
  1450.         'hasdst' => false ),
  1451.     'America/Guyana' => array(
  1452.         'offset' => -14400000,
  1453.         'longname' => 'Guyana Time',
  1454.         'shortname' => 'GYT',
  1455.         'hasdst' => false ),
  1456.     'America/Halifax' => array(
  1457.         'offset' => -14400000,
  1458.         'longname' => 'Atlantic Standard Time',
  1459.         'shortname' => 'AST',
  1460.         'hasdst' => true,
  1461.         'dstlongname' => 'Atlantic Daylight Time',
  1462.         'dstshortname' => 'ADT' ),
  1463.     'America/La_Paz' => array(
  1464.         'offset' => -14400000,
  1465.         'longname' => 'Bolivia Time',
  1466.         'shortname' => 'BOT',
  1467.         'hasdst' => false ),
  1468.     'America/Manaus' => array(
  1469.         'offset' => -14400000,
  1470.         'longname' => 'Amazon Standard Time',
  1471.         'shortname' => 'AMT',
  1472.         'hasdst' => false ),
  1473.     'America/Martinique' => array(
  1474.         'offset' => -14400000,
  1475.         'longname' => 'Atlantic Standard Time',
  1476.         'shortname' => 'AST',
  1477.         'hasdst' => false ),
  1478.     'America/Montserrat' => array(
  1479.         'offset' => -14400000,
  1480.         'longname' => 'Atlantic Standard Time',
  1481.         'shortname' => 'AST',
  1482.         'hasdst' => false ),
  1483.     'America/Port_of_Spain' => array(
  1484.         'offset' => -14400000,
  1485.         'longname' => 'Atlantic Standard Time',
  1486.         'shortname' => 'AST',
  1487.         'hasdst' => false ),
  1488.     'America/Porto_Velho' => array(
  1489.         'offset' => -14400000,
  1490.         'longname' => 'Amazon Standard Time',
  1491.         'shortname' => 'AMT',
  1492.         'hasdst' => false ),
  1493.     'America/Puerto_Rico' => array(
  1494.         'offset' => -14400000,
  1495.         'longname' => 'Atlantic Standard Time',
  1496.         'shortname' => 'AST',
  1497.         'hasdst' => false ),
  1498.     'America/Santiago' => array(
  1499.         'offset' => -14400000,
  1500.         'longname' => 'Chile Time',
  1501.         'shortname' => 'CLT',
  1502.         'hasdst' => true,
  1503.         'dstlongname' => 'Chile Summer Time',
  1504.         'dstshortname' => 'CLST' ),
  1505.     'America/Santo_Domingo' => array(
  1506.         'offset' => -14400000,
  1507.         'longname' => 'Atlantic Standard Time',
  1508.         'shortname' => 'AST',
  1509.         'hasdst' => false ),
  1510.     'America/St_Kitts' => array(
  1511.         'offset' => -14400000,
  1512.         'longname' => 'Atlantic Standard Time',
  1513.         'shortname' => 'AST',
  1514.         'hasdst' => false ),
  1515.     'America/St_Lucia' => array(
  1516.         'offset' => -14400000,
  1517.         'longname' => 'Atlantic Standard Time',
  1518.         'shortname' => 'AST',
  1519.         'hasdst' => false ),
  1520.     'America/St_Thomas' => array(
  1521.         'offset' => -14400000,
  1522.         'longname' => 'Atlantic Standard Time',
  1523.         'shortname' => 'AST',
  1524.         'hasdst' => false ),
  1525.     'America/St_Vincent' => array(
  1526.         'offset' => -14400000,
  1527.         'longname' => 'Atlantic Standard Time',
  1528.         'shortname' => 'AST',
  1529.         'hasdst' => false ),
  1530.     'America/Thule' => array(
  1531.         'offset' => -14400000,
  1532.         'longname' => 'Atlantic Standard Time',
  1533.         'shortname' => 'AST',
  1534.         'hasdst' => false ),
  1535.     'America/Tortola' => array(
  1536.         'offset' => -14400000,
  1537.         'longname' => 'Atlantic Standard Time',
  1538.         'shortname' => 'AST',
  1539.         'hasdst' => false ),
  1540.     'America/Virgin' => array(
  1541.         'offset' => -14400000,
  1542.         'longname' => 'Atlantic Standard Time',
  1543.         'shortname' => 'AST',
  1544.         'hasdst' => false ),
  1545.     'Antarctica/Palmer' => array(
  1546.         'offset' => -14400000,
  1547.         'longname' => 'Chile Time',
  1548.         'shortname' => 'CLT',
  1549.         'hasdst' => true,
  1550.         'dstlongname' => 'Chile Summer Time',
  1551.         'dstshortname' => 'CLST' ),
  1552.     'Atlantic/Bermuda' => array(
  1553.         'offset' => -14400000,
  1554.         'longname' => 'Atlantic Standard Time',
  1555.         'shortname' => 'AST',
  1556.         'hasdst' => true,
  1557.         'dstlongname' => 'Atlantic Daylight Time',
  1558.         'dstshortname' => 'ADT' ),
  1559.     'Atlantic/Stanley' => array(
  1560.         'offset' => -14400000,
  1561.         'longname' => 'Falkland Is. Time',
  1562.         'shortname' => 'FKT',
  1563.         'hasdst' => true,
  1564.         'dstlongname' => 'Falkland Is. Summer Time',
  1565.         'dstshortname' => 'FKST' ),
  1566.     'Brazil/West' => array(
  1567.         'offset' => -14400000,
  1568.         'longname' => 'Amazon Standard Time',
  1569.         'shortname' => 'AMT',
  1570.         'hasdst' => false ),
  1571.     'Canada/Atlantic' => array(
  1572.         'offset' => -14400000,
  1573.         'longname' => 'Atlantic Standard Time',
  1574.         'shortname' => 'AST',
  1575.         'hasdst' => true,
  1576.         'dstlongname' => 'Atlantic Daylight Time',
  1577.         'dstshortname' => 'ADT' ),
  1578.     'Chile/Continental' => array(
  1579.         'offset' => -14400000,
  1580.         'longname' => 'Chile Time',
  1581.         'shortname' => 'CLT',
  1582.         'hasdst' => true,
  1583.         'dstlongname' => 'Chile Summer Time',
  1584.         'dstshortname' => 'CLST' ),
  1585.     'Etc/GMT+4' => array(
  1586.         'offset' => -14400000,
  1587.         'longname' => 'GMT-04:00',
  1588.         'shortname' => 'GMT-04:00',
  1589.         'hasdst' => false ),
  1590.     'PRT' => array(
  1591.         'offset' => -14400000,
  1592.         'longname' => 'Atlantic Standard Time',
  1593.         'shortname' => 'AST',
  1594.         'hasdst' => false ),
  1595.     'SystemV/AST4' => array(
  1596.         'offset' => -14400000,
  1597.         'longname' => 'Atlantic Standard Time',
  1598.         'shortname' => 'AST',
  1599.         'hasdst' => false ),
  1600.     'SystemV/AST4ADT' => array(
  1601.         'offset' => -14400000,
  1602.         'longname' => 'Atlantic Standard Time',
  1603.         'shortname' => 'AST',
  1604.         'hasdst' => true,
  1605.         'dstlongname' => 'Atlantic Daylight Time',
  1606.         'dstshortname' => 'ADT' ),
  1607.     'America/St_Johns' => array(
  1608.         'offset' => -12600000,
  1609.         'longname' => 'Newfoundland Standard Time',
  1610.         'shortname' => 'NST',
  1611.         'hasdst' => true,
  1612.         'dstlongname' => 'Newfoundland Daylight Time',
  1613.         'dstshortname' => 'NDT' ),
  1614.     'CNT' => array(
  1615.         'offset' => -12600000,
  1616.         'longname' => 'Newfoundland Standard Time',
  1617.         'shortname' => 'NST',
  1618.         'hasdst' => true,
  1619.         'dstlongname' => 'Newfoundland Daylight Time',
  1620.         'dstshortname' => 'NDT' ),
  1621.     'Canada/Newfoundland' => array(
  1622.         'offset' => -12600000,
  1623.         'longname' => 'Newfoundland Standard Time',
  1624.         'shortname' => 'NST',
  1625.         'hasdst' => true,
  1626.         'dstlongname' => 'Newfoundland Daylight Time',
  1627.         'dstshortname' => 'NDT' ),
  1628.     'AGT' => array(
  1629.         'offset' => -10800000,
  1630.         'longname' => 'Argentine Time',
  1631.         'shortname' => 'ART',
  1632.         'hasdst' => false ),
  1633.     'America/Araguaina' => array(
  1634.         'offset' => -10800000,
  1635.         'longname' => 'Brazil Time',
  1636.         'shortname' => 'BRT',
  1637.         'hasdst' => true,
  1638.         'dstlongname' => 'Brazil Summer Time',
  1639.         'dstshortname' => 'BRST' ),
  1640.     'America/Belem' => array(
  1641.         'offset' => -10800000,
  1642.         'longname' => 'Brazil Time',
  1643.         'shortname' => 'BRT',
  1644.         'hasdst' => false ),
  1645.     'America/Buenos_Aires' => array(
  1646.         'offset' => -10800000,
  1647.         'longname' => 'Argentine Time',
  1648.         'shortname' => 'ART',
  1649.         'hasdst' => false ),
  1650.     'America/Catamarca' => array(
  1651.         'offset' => -10800000,
  1652.         'longname' => 'Argentine Time',
  1653.         'shortname' => 'ART',
  1654.         'hasdst' => false ),
  1655.     'America/Cayenne' => array(
  1656.         'offset' => -10800000,
  1657.         'longname' => 'French Guiana Time',
  1658.         'shortname' => 'GFT',
  1659.         'hasdst' => false ),
  1660.     'America/Cordoba' => array(
  1661.         'offset' => -10800000,
  1662.         'longname' => 'Argentine Time',
  1663.         'shortname' => 'ART',
  1664.         'hasdst' => false ),
  1665.     'America/Fortaleza' => array(
  1666.         'offset' => -10800000,
  1667.         'longname' => 'Brazil Time',
  1668.         'shortname' => 'BRT',
  1669.         'hasdst' => true,
  1670.         'dstlongname' => 'Brazil Summer Time',
  1671.         'dstshortname' => 'BRST' ),
  1672.     'America/Godthab' => array(
  1673.         'offset' => -10800000,
  1674.         'longname' => 'Western Greenland Time',
  1675.         'shortname' => 'WGT',
  1676.         'hasdst' => true,
  1677.         'dstlongname' => 'Western Greenland Summer Time',
  1678.         'dstshortname' => 'WGST' ),
  1679.     'America/Jujuy' => array(
  1680.         'offset' => -10800000,
  1681.         'longname' => 'Argentine Time',
  1682.         'shortname' => 'ART',
  1683.         'hasdst' => false ),
  1684.     'America/Maceio' => array(
  1685.         'offset' => -10800000,
  1686.         'longname' => 'Brazil Time',
  1687.         'shortname' => 'BRT',
  1688.         'hasdst' => true,
  1689.         'dstlongname' => 'Brazil Summer Time',
  1690.         'dstshortname' => 'BRST' ),
  1691.     'America/Mendoza' => array(
  1692.         'offset' => -10800000,
  1693.         'longname' => 'Argentine Time',
  1694.         'shortname' => 'ART',
  1695.         'hasdst' => false ),
  1696.     'America/Miquelon' => array(
  1697.         'offset' => -10800000,
  1698.         'longname' => 'Pierre & Miquelon Standard Time',
  1699.         'shortname' => 'PMST',
  1700.         'hasdst' => true,
  1701.         'dstlongname' => 'Pierre & Miquelon Daylight Time',
  1702.         'dstshortname' => 'PMDT' ),
  1703.     'America/Montevideo' => array(
  1704.         'offset' => -10800000,
  1705.         'longname' => 'Uruguay Time',
  1706.         'shortname' => 'UYT',
  1707.         'hasdst' => false ),
  1708.     'America/Paramaribo' => array(
  1709.         'offset' => -10800000,
  1710.         'longname' => 'Suriname Time',
  1711.         'shortname' => 'SRT',
  1712.         'hasdst' => false ),
  1713.     'America/Recife' => array(
  1714.         'offset' => -10800000,
  1715.         'longname' => 'Brazil Time',
  1716.         'shortname' => 'BRT',
  1717.         'hasdst' => true,
  1718.         'dstlongname' => 'Brazil Summer Time',
  1719.         'dstshortname' => 'BRST' ),
  1720.     'America/Rosario' => array(
  1721.         'offset' => -10800000,
  1722.         'longname' => 'Argentine Time',
  1723.         'shortname' => 'ART',
  1724.         'hasdst' => false ),
  1725.     'America/Sao_Paulo' => array(
  1726.         'offset' => -10800000,
  1727.         'longname' => 'Brazil Time',
  1728.         'shortname' => 'BRT',
  1729.         'hasdst' => true,
  1730.         'dstlongname' => 'Brazil Summer Time',
  1731.         'dstshortname' => 'BRST' ),
  1732.     'BET' => array(
  1733.         'offset' => -10800000,
  1734.         'longname' => 'Brazil Time',
  1735.         'shortname' => 'BRT',
  1736.         'hasdst' => true,
  1737.         'dstlongname' => 'Brazil Summer Time',
  1738.         'dstshortname' => 'BRST' ),
  1739.     'Brazil/East' => array(
  1740.         'offset' => -10800000,
  1741.         'longname' => 'Brazil Time',
  1742.         'shortname' => 'BRT',
  1743.         'hasdst' => true,
  1744.         'dstlongname' => 'Brazil Summer Time',
  1745.         'dstshortname' => 'BRST' ),
  1746.     'Etc/GMT+3' => array(
  1747.         'offset' => -10800000,
  1748.         'longname' => 'GMT-03:00',
  1749.         'shortname' => 'GMT-03:00',
  1750.         'hasdst' => false ),
  1751.     'America/Noronha' => array(
  1752.         'offset' => -7200000,
  1753.         'longname' => 'Fernando de Noronha Time',
  1754.         'shortname' => 'FNT',
  1755.         'hasdst' => false ),
  1756.     'Atlantic/South_Georgia' => array(
  1757.         'offset' => -7200000,
  1758.         'longname' => 'South Georgia Standard Time',
  1759.         'shortname' => 'GST',
  1760.         'hasdst' => false ),
  1761.     'Brazil/DeNoronha' => array(
  1762.         'offset' => -7200000,
  1763.         'longname' => 'Fernando de Noronha Time',
  1764.         'shortname' => 'FNT',
  1765.         'hasdst' => false ),
  1766.     'Etc/GMT+2' => array(
  1767.         'offset' => -7200000,
  1768.         'longname' => 'GMT-02:00',
  1769.         'shortname' => 'GMT-02:00',
  1770.         'hasdst' => false ),
  1771.     'America/Scoresbysund' => array(
  1772.         'offset' => -3600000,
  1773.         'longname' => 'Eastern Greenland Time',
  1774.         'shortname' => 'EGT',
  1775.         'hasdst' => true,
  1776.         'dstlongname' => 'Eastern Greenland Summer Time',
  1777.         'dstshortname' => 'EGST' ),
  1778.     'Atlantic/Azores' => array(
  1779.         'offset' => -3600000,
  1780.         'longname' => 'Azores Time',
  1781.         'shortname' => 'AZOT',
  1782.         'hasdst' => true,
  1783.         'dstlongname' => 'Azores Summer Time',
  1784.         'dstshortname' => 'AZOST' ),
  1785.     'Atlantic/Cape_Verde' => array(
  1786.         'offset' => -3600000,
  1787.         'longname' => 'Cape Verde Time',
  1788.         'shortname' => 'CVT',
  1789.         'hasdst' => false ),
  1790.     'Etc/GMT+1' => array(
  1791.         'offset' => -3600000,
  1792.         'longname' => 'GMT-01:00',
  1793.         'shortname' => 'GMT-01:00',
  1794.         'hasdst' => false ),
  1795.     'Africa/Abidjan' => array(
  1796.         'offset' => 0,
  1797.         'longname' => 'Greenwich Mean Time',
  1798.         'shortname' => 'GMT',
  1799.         'hasdst' => false ),
  1800.     'Africa/Accra' => array(
  1801.         'offset' => 0,
  1802.         'longname' => 'Greenwich Mean Time',
  1803.         'shortname' => 'GMT',
  1804.         'hasdst' => false ),
  1805.     'Africa/Bamako' => array(
  1806.         'offset' => 0,
  1807.         'longname' => 'Greenwich Mean Time',
  1808.         'shortname' => 'GMT',
  1809.         'hasdst' => false ),
  1810.     'Africa/Banjul' => array(
  1811.         'offset' => 0,
  1812.         'longname' => 'Greenwich Mean Time',
  1813.         'shortname' => 'GMT',
  1814.         'hasdst' => false ),
  1815.     'Africa/Bissau' => array(
  1816.         'offset' => 0,
  1817.         'longname' => 'Greenwich Mean Time',
  1818.         'shortname' => 'GMT',
  1819.         'hasdst' => false ),
  1820.     'Africa/Casablanca' => array(
  1821.         'offset' => 0,
  1822.         'longname' => 'Western European Time',
  1823.         'shortname' => 'WET',
  1824.         'hasdst' => false ),
  1825.     'Africa/Conakry' => array(
  1826.         'offset' => 0,
  1827.         'longname' => 'Greenwich Mean Time',
  1828.         'shortname' => 'GMT',
  1829.         'hasdst' => false ),
  1830.     'Africa/Dakar' => array(
  1831.         'offset' => 0,
  1832.         'longname' => 'Greenwich Mean Time',
  1833.         'shortname' => 'GMT',
  1834.         'hasdst' => false ),
  1835.     'Africa/El_Aaiun' => array(
  1836.         'offset' => 0,
  1837.         'longname' => 'Western European Time',
  1838.         'shortname' => 'WET',
  1839.         'hasdst' => false ),
  1840.     'Africa/Freetown' => array(
  1841.         'offset' => 0,
  1842.         'longname' => 'Greenwich Mean Time',
  1843.         'shortname' => 'GMT',
  1844.         'hasdst' => false ),
  1845.     'Africa/Lome' => array(
  1846.         'offset' => 0,
  1847.         'longname' => 'Greenwich Mean Time',
  1848.         'shortname' => 'GMT',
  1849.         'hasdst' => false ),
  1850.     'Africa/Monrovia' => array(
  1851.         'offset' => 0,
  1852.         'longname' => 'Greenwich Mean Time',
  1853.         'shortname' => 'GMT',
  1854.         'hasdst' => false ),
  1855.     'Africa/Nouakchott' => array(
  1856.         'offset' => 0,
  1857.         'longname' => 'Greenwich Mean Time',
  1858.         'shortname' => 'GMT',
  1859.         'hasdst' => false ),
  1860.     'Africa/Ouagadougou' => array(
  1861.         'offset' => 0,
  1862.         'longname' => 'Greenwich Mean Time',
  1863.         'shortname' => 'GMT',
  1864.         'hasdst' => false ),
  1865.     'Africa/Sao_Tome' => array(
  1866.         'offset' => 0,
  1867.         'longname' => 'Greenwich Mean Time',
  1868.         'shortname' => 'GMT',
  1869.         'hasdst' => false ),
  1870.     'Africa/Timbuktu' => array(
  1871.         'offset' => 0,
  1872.         'longname' => 'Greenwich Mean Time',
  1873.         'shortname' => 'GMT',
  1874.         'hasdst' => false ),
  1875.     'America/Danmarkshavn' => array(
  1876.         'offset' => 0,
  1877.         'longname' => 'Greenwich Mean Time',
  1878.         'shortname' => 'GMT',
  1879.         'hasdst' => false ),
  1880.     'Atlantic/Canary' => array(
  1881.         'offset' => 0,
  1882.         'longname' => 'Western European Time',
  1883.         'shortname' => 'WET',
  1884.         'hasdst' => true,
  1885.         'dstlongname' => 'Western European Summer Time',
  1886.         'dstshortname' => 'WEST' ),
  1887.     'Atlantic/Faeroe' => array(
  1888.         'offset' => 0,
  1889.         'longname' => 'Western European Time',
  1890.         'shortname' => 'WET',
  1891.         'hasdst' => true,
  1892.         'dstlongname' => 'Western European Summer Time',
  1893.         'dstshortname' => 'WEST' ),
  1894.     'Atlantic/Madeira' => array(
  1895.         'offset' => 0,
  1896.         'longname' => 'Western European Time',
  1897.         'shortname' => 'WET',
  1898.         'hasdst' => true,
  1899.         'dstlongname' => 'Western European Summer Time',
  1900.         'dstshortname' => 'WEST' ),
  1901.     'Atlantic/Reykjavik' => array(
  1902.         'offset' => 0,
  1903.         'longname' => 'Greenwich Mean Time',
  1904.         'shortname' => 'GMT',
  1905.         'hasdst' => false ),
  1906.     'Atlantic/St_Helena' => array(
  1907.         'offset' => 0,
  1908.         'longname' => 'Greenwich Mean Time',
  1909.         'shortname' => 'GMT',
  1910.         'hasdst' => false ),
  1911.     'Eire' => array(
  1912.         'offset' => 0,
  1913.         'longname' => 'Greenwich Mean Time',
  1914.         'shortname' => 'GMT',
  1915.         'hasdst' => true,
  1916.         'dstlongname' => 'Irish Summer Time',
  1917.         'dstshortname' => 'IST' ),
  1918.     'Etc/GMT' => array(
  1919.         'offset' => 0,
  1920.         'longname' => 'GMT+00:00',
  1921.         'shortname' => 'GMT+00:00',
  1922.         'hasdst' => false ),
  1923.     'Etc/GMT+0' => array(
  1924.         'offset' => 0,
  1925.         'longname' => 'GMT+00:00',
  1926.         'shortname' => 'GMT+00:00',
  1927.         'hasdst' => false ),
  1928.     'Etc/GMT-0' => array(
  1929.         'offset' => 0,
  1930.         'longname' => 'GMT+00:00',
  1931.         'shortname' => 'GMT+00:00',
  1932.         'hasdst' => false ),
  1933.     'Etc/GMT0' => array(
  1934.         'offset' => 0,
  1935.         'longname' => 'GMT+00:00',
  1936.         'shortname' => 'GMT+00:00',
  1937.         'hasdst' => false ),
  1938.     'Etc/Greenwich' => array(
  1939.         'offset' => 0,
  1940.         'longname' => 'Greenwich Mean Time',
  1941.         'shortname' => 'GMT',
  1942.         'hasdst' => false ),
  1943.     'Etc/UCT' => array(
  1944.         'offset' => 0,
  1945.         'longname' => 'Coordinated Universal Time',
  1946.         'shortname' => 'UTC',
  1947.         'hasdst' => false ),
  1948.     'Etc/UTC' => array(
  1949.         'offset' => 0,
  1950.         'longname' => 'Coordinated Universal Time',
  1951.         'shortname' => 'UTC',
  1952.         'hasdst' => false ),
  1953.     'Etc/Universal' => array(
  1954.         'offset' => 0,
  1955.         'longname' => 'Coordinated Universal Time',
  1956.         'shortname' => 'UTC',
  1957.         'hasdst' => false ),
  1958.     'Etc/Zulu' => array(
  1959.         'offset' => 0,
  1960.         'longname' => 'Coordinated Universal Time',
  1961.         'shortname' => 'UTC',
  1962.         'hasdst' => false ),
  1963.     'Europe/Belfast' => array(
  1964.         'offset' => 0,
  1965.         'longname' => 'Greenwich Mean Time',
  1966.         'shortname' => 'GMT',
  1967.         'hasdst' => true,
  1968.         'dstlongname' => 'British Summer Time',
  1969.         'dstshortname' => 'BST' ),
  1970.     'Europe/Dublin' => array(
  1971.         'offset' => 0,
  1972.         'longname' => 'Greenwich Mean Time',
  1973.         'shortname' => 'GMT',
  1974.         'hasdst' => true,
  1975.         'dstlongname' => 'Irish Summer Time',
  1976.         'dstshortname' => 'IST' ),
  1977.     'Europe/Lisbon' => array(
  1978.         'offset' => 0,
  1979.         'longname' => 'Western European Time',
  1980.         'shortname' => 'WET',
  1981.         'hasdst' => true,
  1982.         'dstlongname' => 'Western European Summer Time',
  1983.         'dstshortname' => 'WEST' ),
  1984.     'Europe/London' => array(
  1985.         'offset' => 0,
  1986.         'longname' => 'Greenwich Mean Time',
  1987.         'shortname' => 'GMT',
  1988.         'hasdst' => true,
  1989.         'dstlongname' => 'British Summer Time',
  1990.         'dstshortname' => 'BST' ),
  1991.     'GB' => array(
  1992.         'offset' => 0,
  1993.         'longname' => 'Greenwich Mean Time',
  1994.         'shortname' => 'GMT',
  1995.         'hasdst' => true,
  1996.         'dstlongname' => 'British Summer Time',
  1997.         'dstshortname' => 'BST' ),
  1998.     'GB-Eire' => array(
  1999.         'offset' => 0,
  2000.         'longname' => 'Greenwich Mean Time',
  2001.         'shortname' => 'GMT',
  2002.         'hasdst' => true,
  2003.         'dstlongname' => 'British Summer Time',
  2004.         'dstshortname' => 'BST' ),
  2005.     'GMT' => array(
  2006.         'offset' => 0,
  2007.         'longname' => 'Greenwich Mean Time',
  2008.         'shortname' => 'GMT',
  2009.         'hasdst' => false ),
  2010.     'GMT0' => array(
  2011.         'offset' => 0,
  2012.         'longname' => 'GMT+00:00',
  2013.         'shortname' => 'GMT+00:00',
  2014.         'hasdst' => false ),
  2015.     'Greenwich' => array(
  2016.         'offset' => 0,
  2017.         'longname' => 'Greenwich Mean Time',
  2018.         'shortname' => 'GMT',
  2019.         'hasdst' => false ),
  2020.     'Iceland' => array(
  2021.         'offset' => 0,
  2022.         'longname' => 'Greenwich Mean Time',
  2023.         'shortname' => 'GMT',
  2024.         'hasdst' => false ),
  2025.     'Portugal' => array(
  2026.         'offset' => 0,
  2027.         'longname' => 'Western European Time',
  2028.         'shortname' => 'WET',
  2029.         'hasdst' => true,
  2030.         'dstlongname' => 'Western European Summer Time',
  2031.         'dstshortname' => 'WEST' ),
  2032.     'UCT' => array(
  2033.         'offset' => 0,
  2034.         'longname' => 'Coordinated Universal Time',
  2035.         'shortname' => 'UTC',
  2036.         'hasdst' => false ),
  2037.     'UTC' => array(
  2038.         'offset' => 0,
  2039.         'longname' => 'Coordinated Universal Time',
  2040.         'shortname' => 'UTC',
  2041.         'hasdst' => false ),
  2042.     'Universal' => array(
  2043.         'offset' => 0,
  2044.         'longname' => 'Coordinated Universal Time',
  2045.         'shortname' => 'UTC',
  2046.         'hasdst' => false ),
  2047.     'WET' => array(
  2048.         'offset' => 0,
  2049.         'longname' => 'Western European Time',
  2050.         'shortname' => 'WET',
  2051.         'hasdst' => true,
  2052.         'dstlongname' => 'Western European Summer Time',
  2053.         'dstshortname' => 'WEST' ),
  2054.     'Zulu' => array(
  2055.         'offset' => 0,
  2056.         'longname' => 'Coordinated Universal Time',
  2057.         'shortname' => 'UTC',
  2058.         'hasdst' => false ),
  2059.     'Africa/Algiers' => array(
  2060.         'offset' => 3600000,
  2061.         'longname' => 'Central European Time',
  2062.         'shortname' => 'CET',
  2063.         'hasdst' => false ),
  2064.     'Africa/Bangui' => array(
  2065.         'offset' => 3600000,
  2066.         'longname' => 'Western African Time',
  2067.         'shortname' => 'WAT',
  2068.         'hasdst' => false ),
  2069.     'Africa/Brazzaville' => array(
  2070.         'offset' => 3600000,
  2071.         'longname' => 'Western African Time',
  2072.         'shortname' => 'WAT',
  2073.         'hasdst' => false ),
  2074.     'Africa/Ceuta' => array(
  2075.         'offset' => 3600000,
  2076.         'longname' => 'Central European Time',
  2077.         'shortname' => 'CET',
  2078.         'hasdst' => true,
  2079.         'dstlongname' => 'Central European Summer Time',
  2080.         'dstshortname' => 'CEST' ),
  2081.     'Africa/Douala' => array(
  2082.         'offset' => 3600000,
  2083.         'longname' => 'Western African Time',
  2084.         'shortname' => 'WAT',
  2085.         'hasdst' => false ),
  2086.     'Africa/Kinshasa' => array(
  2087.         'offset' => 3600000,
  2088.         'longname' => 'Western African Time',
  2089.         'shortname' => 'WAT',
  2090.         'hasdst' => false ),
  2091.     'Africa/Lagos' => array(
  2092.         'offset' => 3600000,
  2093.         'longname' => 'Western African Time',
  2094.         'shortname' => 'WAT',
  2095.         'hasdst' => false ),
  2096.     'Africa/Libreville' => array(
  2097.         'offset' => 3600000,
  2098.         'longname' => 'Western African Time',
  2099.         'shortname' => 'WAT',
  2100.         'hasdst' => false ),
  2101.     'Africa/Luanda' => array(
  2102.         'offset' => 3600000,
  2103.         'longname' => 'Western African Time',
  2104.         'shortname' => 'WAT',
  2105.         'hasdst' => false ),
  2106.     'Africa/Malabo' => array(
  2107.         'offset' => 3600000,
  2108.         'longname' => 'Western African Time',
  2109.         'shortname' => 'WAT',
  2110.         'hasdst' => false ),
  2111.     'Africa/Ndjamena' => array(
  2112.         'offset' => 3600000,
  2113.         'longname' => 'Western African Time',
  2114.         'shortname' => 'WAT',
  2115.         'hasdst' => false ),
  2116.     'Africa/Niamey' => array(
  2117.         'offset' => 3600000,
  2118.         'longname' => 'Western African Time',
  2119.         'shortname' => 'WAT',
  2120.         'hasdst' => false ),
  2121.     'Africa/Porto-Novo' => array(
  2122.         'offset' => 3600000,
  2123.         'longname' => 'Western African Time',
  2124.         'shortname' => 'WAT',
  2125.         'hasdst' => false ),
  2126.     'Africa/Tunis' => array(
  2127.         'offset' => 3600000,
  2128.         'longname' => 'Central European Time',
  2129.         'shortname' => 'CET',
  2130.         'hasdst' => false ),
  2131.     'Africa/Windhoek' => array(
  2132.         'offset' => 3600000,
  2133.         'longname' => 'Western African Time',
  2134.         'shortname' => 'WAT',
  2135.         'hasdst' => true,
  2136.         'dstlongname' => 'Western African Summer Time',
  2137.         'dstshortname' => 'WAST' ),
  2138.     'Arctic/Longyearbyen' => array(
  2139.         'offset' => 3600000,
  2140.         'longname' => 'Central European Time',
  2141.         'shortname' => 'CET',
  2142.         'hasdst' => true,
  2143.         'dstlongname' => 'Central European Summer Time',
  2144.         'dstshortname' => 'CEST' ),
  2145.     'Atlantic/Jan_Mayen' => array(
  2146.         'offset' => 3600000,
  2147.         'longname' => 'Eastern Greenland Time',
  2148.         'shortname' => 'EGT',
  2149.         'hasdst' => true,
  2150.         'dstlongname' => 'Eastern Greenland Summer Time',
  2151.         'dstshortname' => 'EGST' ),
  2152.     'CET' => array(
  2153.         'offset' => 3600000,
  2154.         'longname' => 'Central European Time',
  2155.         'shortname' => 'CET',
  2156.         'hasdst' => true,
  2157.         'dstlongname' => 'Central European Summer Time',
  2158.         'dstshortname' => 'CEST' ),
  2159.     'CEST' => array(
  2160.         'offset' => 3600000,
  2161.         'longname' => "Central European Time",
  2162.         'shortname' => 'CET',
  2163.         'hasdst' => true,
  2164.         'dstlongname' => "Central European Summer Time",
  2165.         'dstshortname' => 'CEST' ),
  2166.     'ECT' => array(
  2167.         'offset' => 3600000,
  2168.         'longname' => 'Central European Time',
  2169.         'shortname' => 'CET',
  2170.         'hasdst' => true,
  2171.         'dstlongname' => 'Central European Summer Time',
  2172.         'dstshortname' => 'CEST' ),
  2173.     'Etc/GMT-1' => array(
  2174.         'offset' => 3600000,
  2175.         'longname' => 'GMT+01:00',
  2176.         'shortname' => 'GMT+01:00',
  2177.         'hasdst' => false ),
  2178.     'Europe/Amsterdam' => array(
  2179.         'offset' => 3600000,
  2180.         'longname' => 'Central European Time',
  2181.         'shortname' => 'CET',
  2182.         'hasdst' => true,
  2183.         'dstlongname' => 'Central European Summer Time',
  2184.         'dstshortname' => 'CEST' ),
  2185.     'Europe/Andorra' => array(
  2186.         'offset' => 3600000,
  2187.         'longname' => 'Central European Time',
  2188.         'shortname' => 'CET',
  2189.         'hasdst' => true,
  2190.         'dstlongname' => 'Central European Summer Time',
  2191.         'dstshortname' => 'CEST' ),
  2192.     'Europe/Belgrade' => array(
  2193.         'offset' => 3600000,
  2194.         'longname' => 'Central European Time',
  2195.         'shortname' => 'CET',
  2196.         'hasdst' => true,
  2197.         'dstlongname' => 'Central European Summer Time',
  2198.         'dstshortname' => 'CEST' ),
  2199.     'Europe/Berlin' => array(
  2200.         'offset' => 3600000,
  2201.         'longname' => 'Central European Time',
  2202.         'shortname' => 'CET',
  2203.         'hasdst' => true,
  2204.         'dstlongname' => 'Central European Summer Time',
  2205.         'dstshortname' => 'CEST' ),
  2206.     'Europe/Bratislava' => array(
  2207.         'offset' => 3600000,
  2208.         'longname' => 'Central European Time',
  2209.         'shortname' => 'CET',
  2210.         'hasdst' => true,
  2211.         'dstlongname' => 'Central European Summer Time',
  2212.         'dstshortname' => 'CEST' ),
  2213.     'Europe/Brussels' => array(
  2214.         'offset' => 3600000,
  2215.         'longname' => 'Central European Time',
  2216.         'shortname' => 'CET',
  2217.         'hasdst' => true,
  2218.         'dstlongname' => 'Central European Summer Time',
  2219.         'dstshortname' => 'CEST' ),
  2220.     'Europe/Budapest' => array(
  2221.         'offset' => 3600000,
  2222.         'longname' => 'Central European Time',
  2223.         'shortname' => 'CET',
  2224.         'hasdst' => true,
  2225.         'dstlongname' => 'Central European Summer Time',
  2226.         'dstshortname' => 'CEST' ),
  2227.     'Europe/Copenhagen' => array(
  2228.         'offset' => 3600000,
  2229.         'longname' => 'Central European Time',
  2230.         'shortname' => 'CET',
  2231.         'hasdst' => true,
  2232.         'dstlongname' => 'Central European Summer Time',
  2233.         'dstshortname' => 'CEST' ),
  2234.     'Europe/Gibraltar' => array(
  2235.         'offset' => 3600000,
  2236.         'longname' => 'Central European Time',
  2237.         'shortname' => 'CET',
  2238.         'hasdst' => true,
  2239.         'dstlongname' => 'Central European Summer Time',
  2240.         'dstshortname' => 'CEST' ),
  2241.     'Europe/Ljubljana' => array(
  2242.         'offset' => 3600000,
  2243.         'longname' => 'Central European Time',
  2244.         'shortname' => 'CET',
  2245.         'hasdst' => true,
  2246.         'dstlongname' => 'Central European Summer Time',
  2247.         'dstshortname' => 'CEST' ),
  2248.     'Europe/Luxembourg' => array(
  2249.         'offset' => 3600000,
  2250.         'longname' => 'Central European Time',
  2251.         'shortname' => 'CET',
  2252.         'hasdst' => true,
  2253.         'dstlongname' => 'Central European Summer Time',
  2254.         'dstshortname' => 'CEST' ),
  2255.     'Europe/Madrid' => array(
  2256.         'offset' => 3600000,
  2257.         'longname' => 'Central European Time',
  2258.         'shortname' => 'CET',
  2259.         'hasdst' => true,
  2260.         'dstlongname' => 'Central European Summer Time',
  2261.         'dstshortname' => 'CEST' ),
  2262.     'Europe/Malta' => array(
  2263.         'offset' => 3600000,
  2264.         'longname' => 'Central European Time',
  2265.         'shortname' => 'CET',
  2266.         'hasdst' => true,
  2267.         'dstlongname' => 'Central European Summer Time',
  2268.         'dstshortname' => 'CEST' ),
  2269.     'Europe/Monaco' => array(
  2270.         'offset' => 3600000,
  2271.         'longname' => 'Central European Time',
  2272.         'shortname' => 'CET',
  2273.         'hasdst' => true,
  2274.         'dstlongname' => 'Central European Summer Time',
  2275.         'dstshortname' => 'CEST' ),
  2276.     'Europe/Oslo' => array(
  2277.         'offset' => 3600000,
  2278.         'longname' => 'Central European Time',
  2279.         'shortname' => 'CET',
  2280.         'hasdst' => true,
  2281.         'dstlongname' => 'Central European Summer Time',
  2282.         'dstshortname' => 'CEST' ),
  2283.     'Europe/Paris' => array(
  2284.         'offset' => 3600000,
  2285.         'longname' => 'Central European Time',
  2286.         'shortname' => 'CET',
  2287.         'hasdst' => true,
  2288.         'dstlongname' => 'Central European Summer Time',
  2289.         'dstshortname' => 'CEST' ),
  2290.     'Europe/Prague' => array(
  2291.         'offset' => 3600000,
  2292.         'longname' => 'Central European Time',
  2293.         'shortname' => 'CET',
  2294.         'hasdst' => true,
  2295.         'dstlongname' => 'Central European Summer Time',
  2296.         'dstshortname' => 'CEST' ),
  2297.     'Europe/Rome' => array(
  2298.         'offset' => 3600000,
  2299.         'longname' => 'Central European Time',
  2300.         'shortname' => 'CET',
  2301.         'hasdst' => true,
  2302.         'dstlongname' => 'Central European Summer Time',
  2303.         'dstshortname' => 'CEST' ),
  2304.     'Europe/San_Marino' => array(
  2305.         'offset' => 3600000,
  2306.         'longname' => 'Central European Time',
  2307.         'shortname' => 'CET',
  2308.         'hasdst' => true,
  2309.         'dstlongname' => 'Central European Summer Time',
  2310.         'dstshortname' => 'CEST' ),
  2311.     'Europe/Sarajevo' => array(
  2312.         'offset' => 3600000,
  2313.         'longname' => 'Central European Time',
  2314.         'shortname' => 'CET',
  2315.         'hasdst' => true,
  2316.         'dstlongname' => 'Central European Summer Time',
  2317.         'dstshortname' => 'CEST' ),
  2318.     'Europe/Skopje' => array(
  2319.         'offset' => 3600000,
  2320.         'longname' => 'Central European Time',
  2321.         'shortname' => 'CET',
  2322.         'hasdst' => true,
  2323.         'dstlongname' => 'Central European Summer Time',
  2324.         'dstshortname' => 'CEST' ),
  2325.     'Europe/Stockholm' => array(
  2326.         'offset' => 3600000,
  2327.         'longname' => 'Central European Time',
  2328.         'shortname' => 'CET',
  2329.         'hasdst' => true,
  2330.         'dstlongname' => 'Central European Summer Time',
  2331.         'dstshortname' => 'CEST' ),
  2332.     'Europe/Tirane' => array(
  2333.         'offset' => 3600000,
  2334.         'longname' => 'Central European Time',
  2335.         'shortname' => 'CET',
  2336.         'hasdst' => true,
  2337.         'dstlongname' => 'Central European Summer Time',
  2338.         'dstshortname' => 'CEST' ),
  2339.     'Europe/Vaduz' => array(
  2340.         'offset' => 3600000,
  2341.         'longname' => 'Central European Time',
  2342.         'shortname' => 'CET',
  2343.         'hasdst' => true,
  2344.         'dstlongname' => 'Central European Summer Time',
  2345.         'dstshortname' => 'CEST' ),
  2346.     'Europe/Vatican' => array(
  2347.         'offset' => 3600000,
  2348.         'longname' => 'Central European Time',
  2349.         'shortname' => 'CET',
  2350.         'hasdst' => true,
  2351.         'dstlongname' => 'Central European Summer Time',
  2352.         'dstshortname' => 'CEST' ),
  2353.     'Europe/Vienna' => array(
  2354.         'offset' => 3600000,
  2355.         'longname' => 'Central European Time',
  2356.         'shortname' => 'CET',
  2357.         'hasdst' => true,
  2358.         'dstlongname' => 'Central European Summer Time',
  2359.         'dstshortname' => 'CEST' ),
  2360.     'Europe/Warsaw' => array(
  2361.         'offset' => 3600000,
  2362.         'longname' => 'Central European Time',
  2363.         'shortname' => 'CET',
  2364.         'hasdst' => true,
  2365.         'dstlongname' => 'Central European Summer Time',
  2366.         'dstshortname' => 'CEST' ),
  2367.     'Europe/Zagreb' => array(
  2368.         'offset' => 3600000,
  2369.         'longname' => 'Central European Time',
  2370.         'shortname' => 'CET',
  2371.         'hasdst' => true,
  2372.         'dstlongname' => 'Central European Summer Time',
  2373.         'dstshortname' => 'CEST' ),
  2374.     'Europe/Zurich' => array(
  2375.         'offset' => 3600000,
  2376.         'longname' => 'Central European Time',
  2377.         'shortname' => 'CET',
  2378.         'hasdst' => true,
  2379.         'dstlongname' => 'Central European Summer Time',
  2380.         'dstshortname' => 'CEST' ),
  2381.     'MET' => array(
  2382.         'offset' => 3600000,
  2383.         'longname' => 'Middle Europe Time',
  2384.         'shortname' => 'MET',
  2385.         'hasdst' => true,
  2386.         'dstlongname' => 'Middle Europe Summer Time',
  2387.         'dstshortname' => 'MEST' ),
  2388.     'Poland' => array(
  2389.         'offset' => 3600000,
  2390.         'longname' => 'Central European Time',
  2391.         'shortname' => 'CET',
  2392.         'hasdst' => true,
  2393.         'dstlongname' => 'Central European Summer Time',
  2394.         'dstshortname' => 'CEST' ),
  2395.     'ART' => array(
  2396.         'offset' => 7200000,
  2397.         'longname' => 'Eastern European Time',
  2398.         'shortname' => 'EET',
  2399.         'hasdst' => true,
  2400.         'dstlongname' => 'Eastern European Summer Time',
  2401.         'dstshortname' => 'EEST' ),
  2402.     'Africa/Blantyre' => array(
  2403.         'offset' => 7200000,
  2404.         'longname' => 'Central African Time',
  2405.         'shortname' => 'CAT',
  2406.         'hasdst' => false ),
  2407.     'Africa/Bujumbura' => array(
  2408.         'offset' => 7200000,
  2409.         'longname' => 'Central African Time',
  2410.         'shortname' => 'CAT',
  2411.         'hasdst' => false ),
  2412.     'Africa/Cairo' => array(
  2413.         'offset' => 7200000,
  2414.         'longname' => 'Eastern European Time',
  2415.         'shortname' => 'EET',
  2416.         'hasdst' => true,
  2417.         'dstlongname' => 'Eastern European Summer Time',
  2418.         'dstshortname' => 'EEST' ),
  2419.     'Africa/Gaborone' => array(
  2420.         'offset' => 7200000,
  2421.         'longname' => 'Central African Time',
  2422.         'shortname' => 'CAT',
  2423.         'hasdst' => false ),
  2424.     'Africa/Harare' => array(
  2425.         'offset' => 7200000,
  2426.         'longname' => 'Central African Time',
  2427.         'shortname' => 'CAT',
  2428.         'hasdst' => false ),
  2429.     'Africa/Johannesburg' => array(
  2430.         'offset' => 7200000,
  2431.         'longname' => 'South Africa Standard Time',
  2432.         'shortname' => 'SAST',
  2433.         'hasdst' => false ),
  2434.     'Africa/Kigali' => array(
  2435.         'offset' => 7200000,
  2436.         'longname' => 'Central African Time',
  2437.         'shortname' => 'CAT',
  2438.         'hasdst' => false ),
  2439.     'Africa/Lubumbashi' => array(
  2440.         'offset' => 7200000,
  2441.         'longname' => 'Central African Time',
  2442.         'shortname' => 'CAT',
  2443.         'hasdst' => false ),
  2444.     'Africa/Lusaka' => array(
  2445.         'offset' => 7200000,
  2446.         'longname' => 'Central African Time',
  2447.         'shortname' => 'CAT',
  2448.         'hasdst' => false ),
  2449.     'Africa/Maputo' => array(
  2450.         'offset' => 7200000,
  2451.         'longname' => 'Central African Time',
  2452.         'shortname' => 'CAT',
  2453.         'hasdst' => false ),
  2454.     'Africa/Maseru' => array(
  2455.         'offset' => 7200000,
  2456.         'longname' => 'South Africa Standard Time',
  2457.         'shortname' => 'SAST',
  2458.         'hasdst' => false ),
  2459.     'Africa/Mbabane' => array(
  2460.         'offset' => 7200000,
  2461.         'longname' => 'South Africa Standard Time',
  2462.         'shortname' => 'SAST',
  2463.         'hasdst' => false ),
  2464.     'Africa/Tripoli' => array(
  2465.         'offset' => 7200000,
  2466.         'longname' => 'Eastern European Time',
  2467.         'shortname' => 'EET',
  2468.         'hasdst' => false ),
  2469.     'Asia/Amman' => array(
  2470.         'offset' => 7200000,
  2471.         'longname' => 'Eastern European Time',
  2472.         'shortname' => 'EET',
  2473.         'hasdst' => true,
  2474.         'dstlongname' => 'Eastern European Summer Time',
  2475.         'dstshortname' => 'EEST' ),
  2476.     'Asia/Beirut' => array(
  2477.         'offset' => 7200000,
  2478.         'longname' => 'Eastern European Time',
  2479.         'shortname' => 'EET',
  2480.         'hasdst' => true,
  2481.         'dstlongname' => 'Eastern European Summer Time',
  2482.         'dstshortname' => 'EEST' ),
  2483.     'Asia/Damascus' => array(
  2484.         'offset' => 7200000,
  2485.         'longname' => 'Eastern European Time',
  2486.         'shortname' => 'EET',
  2487.         'hasdst' => true,
  2488.         'dstlongname' => 'Eastern European Summer Time',
  2489.         'dstshortname' => 'EEST' ),
  2490.     'Asia/Gaza' => array(
  2491.         'offset' => 7200000,
  2492.         'longname' => 'Eastern European Time',
  2493.         'shortname' => 'EET',
  2494.         'hasdst' => true,
  2495.         'dstlongname' => 'Eastern European Summer Time',
  2496.         'dstshortname' => 'EEST' ),
  2497.     'Asia/Istanbul' => array(
  2498.         'offset' => 7200000,
  2499.         'longname' => 'Eastern European Time',
  2500.         'shortname' => 'EET',
  2501.         'hasdst' => true,
  2502.         'dstlongname' => 'Eastern European Summer Time',
  2503.         'dstshortname' => 'EEST' ),
  2504.     'Asia/Jerusalem' => array(
  2505.         'offset' => 7200000,
  2506.         'longname' => 'Israel Standard Time',
  2507.         'shortname' => 'IST',
  2508.         'hasdst' => true,
  2509.         'dstlongname' => 'Israel Daylight Time',
  2510.         'dstshortname' => 'IDT' ),
  2511.     'Asia/Nicosia' => array(
  2512.         'offset' => 7200000,
  2513.         'longname' => 'Eastern European Time',
  2514.         'shortname' => 'EET',
  2515.         'hasdst' => true,
  2516.         'dstlongname' => 'Eastern European Summer Time',
  2517.         'dstshortname' => 'EEST' ),
  2518.     'Asia/Tel_Aviv' => array(
  2519.         'offset' => 7200000,
  2520.         'longname' => 'Israel Standard Time',
  2521.         'shortname' => 'IST',
  2522.         'hasdst' => true,
  2523.         'dstlongname' => 'Israel Daylight Time',
  2524.         'dstshortname' => 'IDT' ),
  2525.     'CAT' => array(
  2526.         'offset' => 7200000,
  2527.         'longname' => 'Central African Time',
  2528.         'shortname' => 'CAT',
  2529.         'hasdst' => false ),
  2530.     'EET' => array(
  2531.         'offset' => 7200000,
  2532.         'longname' => 'Eastern European Time',
  2533.         'shortname' => 'EET',
  2534.         'hasdst' => true,
  2535.         'dstlongname' => 'Eastern European Summer Time',
  2536.         'dstshortname' => 'EEST' ),
  2537.     'Egypt' => array(
  2538.         'offset' => 7200000,
  2539.         'longname' => 'Eastern European Time',
  2540.         'shortname' => 'EET',
  2541.         'hasdst' => true,
  2542.         'dstlongname' => 'Eastern European Summer Time',
  2543.         'dstshortname' => 'EEST' ),
  2544.     'Etc/GMT-2' => array(
  2545.         'offset' => 7200000,
  2546.         'longname' => 'GMT+02:00',
  2547.         'shortname' => 'GMT+02:00',
  2548.         'hasdst' => false ),
  2549.     'Europe/Athens' => array(
  2550.         'offset' => 7200000,
  2551.         'longname' => 'Eastern European Time',
  2552.         'shortname' => 'EET',
  2553.         'hasdst' => true,
  2554.         'dstlongname' => 'Eastern European Summer Time',
  2555.         'dstshortname' => 'EEST' ),
  2556.     'Europe/Bucharest' => array(
  2557.         'offset' => 7200000,
  2558.         'longname' => 'Eastern European Time',
  2559.         'shortname' => 'EET',
  2560.         'hasdst' => true,
  2561.         'dstlongname' => 'Eastern European Summer Time',
  2562.         'dstshortname' => 'EEST' ),
  2563.     'Europe/Chisinau' => array(
  2564.         'offset' => 7200000,
  2565.         'longname' => 'Eastern European Time',
  2566.         'shortname' => 'EET',
  2567.         'hasdst' => true,
  2568.         'dstlongname' => 'Eastern European Summer Time',
  2569.         'dstshortname' => 'EEST' ),
  2570.     'Europe/Helsinki' => array(
  2571.         'offset' => 7200000,
  2572.         'longname' => 'Eastern European Time',
  2573.         'shortname' => 'EET',
  2574.         'hasdst' => true,
  2575.         'dstlongname' => 'Eastern European Summer Time',
  2576.         'dstshortname' => 'EEST' ),
  2577.     'Europe/Istanbul' => array(
  2578.         'offset' => 7200000,
  2579.         'longname' => 'Eastern European Time',
  2580.         'shortname' => 'EET',
  2581.         'hasdst' => true,
  2582.         'dstlongname' => 'Eastern European Summer Time',
  2583.         'dstshortname' => 'EEST' ),
  2584.     'Europe/Kaliningrad' => array(
  2585.         'offset' => 7200000,
  2586.         'longname' => 'Eastern European Time',
  2587.         'shortname' => 'EET',
  2588.         'hasdst' => true,
  2589.         'dstlongname' => 'Eastern European Summer Time',
  2590.         'dstshortname' => 'EEST' ),
  2591.     'Europe/Kiev' => array(
  2592.         'offset' => 7200000,
  2593.         'longname' => 'Eastern European Time',
  2594.         'shortname' => 'EET',
  2595.         'hasdst' => true,
  2596.         'dstlongname' => 'Eastern European Summer Time',
  2597.         'dstshortname' => 'EEST' ),
  2598.     'Europe/Minsk' => array(
  2599.         'offset' => 7200000,
  2600.         'longname' => 'Eastern European Time',
  2601.         'shortname' => 'EET',
  2602.         'hasdst' => true,
  2603.         'dstlongname' => 'Eastern European Summer Time',
  2604.         'dstshortname' => 'EEST' ),
  2605.     'Europe/Nicosia' => array(
  2606.         'offset' => 7200000,
  2607.         'longname' => 'Eastern European Time',
  2608.         'shortname' => 'EET',
  2609.         'hasdst' => true,
  2610.         'dstlongname' => 'Eastern European Summer Time',
  2611.         'dstshortname' => 'EEST' ),
  2612.     'Europe/Riga' => array(
  2613.         'offset' => 7200000,
  2614.         'longname' => 'Eastern European Time',
  2615.         'shortname' => 'EET',
  2616.         'hasdst' => true,
  2617.         'dstlongname' => 'Eastern European Summer Time',
  2618.         'dstshortname' => 'EEST' ),
  2619.     'Europe/Simferopol' => array(
  2620.         'offset' => 7200000,
  2621.         'longname' => 'Eastern European Time',
  2622.         'shortname' => 'EET',
  2623.         'hasdst' => true,
  2624.         'dstlongname' => 'Eastern European Summer Time',
  2625.         'dstshortname' => 'EEST' ),
  2626.     'Europe/Sofia' => array(
  2627.         'offset' => 7200000,
  2628.         'longname' => 'Eastern European Time',
  2629.         'shortname' => 'EET',
  2630.         'hasdst' => true,
  2631.         'dstlongname' => 'Eastern European Summer Time',
  2632.         'dstshortname' => 'EEST' ),
  2633.     'Europe/Tallinn' => array(
  2634.         'offset' => 7200000,
  2635.         'longname' => 'Eastern European Time',
  2636.         'shortname' => 'EET',
  2637.         'hasdst' => false ),
  2638.     'Europe/Tiraspol' => array(
  2639.         'offset' => 7200000,
  2640.         'longname' => 'Eastern European Time',
  2641.         'shortname' => 'EET',
  2642.         'hasdst' => true,
  2643.         'dstlongname' => 'Eastern European Summer Time',
  2644.         'dstshortname' => 'EEST' ),
  2645.     'Europe/Uzhgorod' => array(
  2646.         'offset' => 7200000,
  2647.         'longname' => 'Eastern European Time',
  2648.         'shortname' => 'EET',
  2649.         'hasdst' => true,
  2650.         'dstlongname' => 'Eastern European Summer Time',
  2651.         'dstshortname' => 'EEST' ),
  2652.     'Europe/Vilnius' => array(
  2653.         'offset' => 7200000,
  2654.         'longname' => 'Eastern European Time',
  2655.         'shortname' => 'EET',
  2656.         'hasdst' => false ),
  2657.     'Europe/Zaporozhye' => array(
  2658.         'offset' => 7200000,
  2659.         'longname' => 'Eastern European Time',
  2660.         'shortname' => 'EET',
  2661.         'hasdst' => true,
  2662.         'dstlongname' => 'Eastern European Summer Time',
  2663.         'dstshortname' => 'EEST' ),
  2664.     'Israel' => array(
  2665.         'offset' => 7200000,
  2666.         'longname' => 'Israel Standard Time',
  2667.         'shortname' => 'IST',
  2668.         'hasdst' => true,
  2669.         'dstlongname' => 'Israel Daylight Time',
  2670.         'dstshortname' => 'IDT' ),
  2671.     'Libya' => array(
  2672.         'offset' => 7200000,
  2673.         'longname' => 'Eastern European Time',
  2674.         'shortname' => 'EET',
  2675.         'hasdst' => false ),
  2676.     'Turkey' => array(
  2677.         'offset' => 7200000,
  2678.         'longname' => 'Eastern European Time',
  2679.         'shortname' => 'EET',
  2680.         'hasdst' => true,
  2681.         'dstlongname' => 'Eastern European Summer Time',
  2682.         'dstshortname' => 'EEST' ),
  2683.     'Africa/Addis_Ababa' => array(
  2684.         'offset' => 10800000,
  2685.         'longname' => 'Eastern African Time',
  2686.         'shortname' => 'EAT',
  2687.         'hasdst' => false ),
  2688.     'Africa/Asmera' => array(
  2689.         'offset' => 10800000,
  2690.         'longname' => 'Eastern African Time',
  2691.         'shortname' => 'EAT',
  2692.         'hasdst' => false ),
  2693.     'Africa/Dar_es_Salaam' => array(
  2694.         'offset' => 10800000,
  2695.         'longname' => 'Eastern African Time',
  2696.         'shortname' => 'EAT',
  2697.         'hasdst' => false ),
  2698.     'Africa/Djibouti' => array(
  2699.         'offset' => 10800000,
  2700.         'longname' => 'Eastern African Time',
  2701.         'shortname' => 'EAT',
  2702.         'hasdst' => false ),
  2703.     'Africa/Kampala' => array(
  2704.         'offset' => 10800000,
  2705.         'longname' => 'Eastern African Time',
  2706.         'shortname' => 'EAT',
  2707.         'hasdst' => false ),
  2708.     'Africa/Khartoum' => array(
  2709.         'offset' => 10800000,
  2710.         'longname' => 'Eastern African Time',
  2711.         'shortname' => 'EAT',
  2712.         'hasdst' => false ),
  2713.     'Africa/Mogadishu' => array(
  2714.         'offset' => 10800000,
  2715.         'longname' => 'Eastern African Time',
  2716.         'shortname' => 'EAT',
  2717.         'hasdst' => false ),
  2718.     'Africa/Nairobi' => array(
  2719.         'offset' => 10800000,
  2720.         'longname' => 'Eastern African Time',
  2721.         'shortname' => 'EAT',
  2722.         'hasdst' => false ),
  2723.     'Antarctica/Syowa' => array(
  2724.         'offset' => 10800000,
  2725.         'longname' => 'Syowa Time',
  2726.         'shortname' => 'SYOT',
  2727.         'hasdst' => false ),
  2728.     'Asia/Aden' => array(
  2729.         'offset' => 10800000,
  2730.         'longname' => 'Arabia Standard Time',
  2731.         'shortname' => 'AST',
  2732.         'hasdst' => false ),
  2733.     'Asia/Baghdad' => array(
  2734.         'offset' => 10800000,
  2735.         'longname' => 'Arabia Standard Time',
  2736.         'shortname' => 'AST',
  2737.         'hasdst' => true,
  2738.         'dstlongname' => 'Arabia Daylight Time',
  2739.         'dstshortname' => 'ADT' ),
  2740.     'Asia/Bahrain' => array(
  2741.         'offset' => 10800000,
  2742.         'longname' => 'Arabia Standard Time',
  2743.         'shortname' => 'AST',
  2744.         'hasdst' => false ),
  2745.     'Asia/Kuwait' => array(
  2746.         'offset' => 10800000,
  2747.         'longname' => 'Arabia Standard Time',
  2748.         'shortname' => 'AST',
  2749.         'hasdst' => false ),
  2750.     'Asia/Qatar' => array(
  2751.         'offset' => 10800000,
  2752.         'longname' => 'Arabia Standard Time',
  2753.         'shortname' => 'AST',
  2754.         'hasdst' => false ),
  2755.     'Asia/Riyadh' => array(
  2756.         'offset' => 10800000,
  2757.         'longname' => 'Arabia Standard Time',
  2758.         'shortname' => 'AST',
  2759.         'hasdst' => false ),
  2760.     'EAT' => array(
  2761.         'offset' => 10800000,
  2762.         'longname' => 'Eastern African Time',
  2763.         'shortname' => 'EAT',
  2764.         'hasdst' => false ),
  2765.     'Etc/GMT-3' => array(
  2766.         'offset' => 10800000,
  2767.         'longname' => 'GMT+03:00',
  2768.         'shortname' => 'GMT+03:00',
  2769.         'hasdst' => false ),
  2770.     'Europe/Moscow' => array(
  2771.         'offset' => 10800000,
  2772.         'longname' => 'Moscow Standard Time',
  2773.         'shortname' => 'MSK',
  2774.         'hasdst' => true,
  2775.         'dstlongname' => 'Moscow Daylight Time',
  2776.         'dstshortname' => 'MSD' ),
  2777.     'Indian/Antananarivo' => array(
  2778.         'offset' => 10800000,
  2779.         'longname' => 'Eastern African Time',
  2780.         'shortname' => 'EAT',
  2781.         'hasdst' => false ),
  2782.     'Indian/Comoro' => array(
  2783.         'offset' => 10800000,
  2784.         'longname' => 'Eastern African Time',
  2785.         'shortname' => 'EAT',
  2786.         'hasdst' => false ),
  2787.     'Indian/Mayotte' => array(
  2788.         'offset' => 10800000,
  2789.         'longname' => 'Eastern African Time',
  2790.         'shortname' => 'EAT',
  2791.         'hasdst' => false ),
  2792.     'W-SU' => array(
  2793.         'offset' => 10800000,
  2794.         'longname' => 'Moscow Standard Time',
  2795.         'shortname' => 'MSK',
  2796.         'hasdst' => true,
  2797.         'dstlongname' => 'Moscow Daylight Time',
  2798.         'dstshortname' => 'MSD' ),
  2799.     'Asia/Riyadh87' => array(
  2800.         'offset' => 11224000,
  2801.         'longname' => 'GMT+03:07',
  2802.         'shortname' => 'GMT+03:07',
  2803.         'hasdst' => false ),
  2804.     'Asia/Riyadh88' => array(
  2805.         'offset' => 11224000,
  2806.         'longname' => 'GMT+03:07',
  2807.         'shortname' => 'GMT+03:07',
  2808.         'hasdst' => false ),
  2809.     'Asia/Riyadh89' => array(
  2810.         'offset' => 11224000,
  2811.         'longname' => 'GMT+03:07',
  2812.         'shortname' => 'GMT+03:07',
  2813.         'hasdst' => false ),
  2814.     'Mideast/Riyadh87' => array(
  2815.         'offset' => 11224000,
  2816.         'longname' => 'GMT+03:07',
  2817.         'shortname' => 'GMT+03:07',
  2818.         'hasdst' => false ),
  2819.     'Mideast/Riyadh88' => array(
  2820.         'offset' => 11224000,
  2821.         'longname' => 'GMT+03:07',
  2822.         'shortname' => 'GMT+03:07',
  2823.         'hasdst' => false ),
  2824.     'Mideast/Riyadh89' => array(
  2825.         'offset' => 11224000,
  2826.         'longname' => 'GMT+03:07',
  2827.         'shortname' => 'GMT+03:07',
  2828.         'hasdst' => false ),
  2829.     'Asia/Tehran' => array(
  2830.         'offset' => 12600000,
  2831.         'longname' => 'Iran Time',
  2832.         'shortname' => 'IRT',
  2833.         'hasdst' => true,
  2834.         'dstlongname' => 'Iran Sumer Time',
  2835.         'dstshortname' => 'IRST' ),
  2836.     'Iran' => array(
  2837.         'offset' => 12600000,
  2838.         'longname' => 'Iran Time',
  2839.         'shortname' => 'IRT',
  2840.         'hasdst' => true,
  2841.         'dstlongname' => 'Iran Sumer Time',
  2842.         'dstshortname' => 'IRST' ),
  2843.     'Asia/Aqtau' => array(
  2844.         'offset' => 14400000,
  2845.         'longname' => 'Aqtau Time',
  2846.         'shortname' => 'AQTT',
  2847.         'hasdst' => true,
  2848.         'dstlongname' => 'Aqtau Summer Time',
  2849.         'dstshortname' => 'AQTST' ),
  2850.     'Asia/Baku' => array(
  2851.         'offset' => 14400000,
  2852.         'longname' => 'Azerbaijan Time',
  2853.         'shortname' => 'AZT',
  2854.         'hasdst' => true,
  2855.         'dstlongname' => 'Azerbaijan Summer Time',
  2856.         'dstshortname' => 'AZST' ),
  2857.     'Asia/Dubai' => array(
  2858.         'offset' => 14400000,
  2859.         'longname' => 'Gulf Standard Time',
  2860.         'shortname' => 'GST',
  2861.         'hasdst' => false ),
  2862.     'Asia/Muscat' => array(
  2863.         'offset' => 14400000,
  2864.         'longname' => 'Gulf Standard Time',
  2865.         'shortname' => 'GST',
  2866.         'hasdst' => false ),
  2867.     'Asia/Tbilisi' => array(
  2868.         'offset' => 14400000,
  2869.         'longname' => 'Georgia Time',
  2870.         'shortname' => 'GET',
  2871.         'hasdst' => true,
  2872.         'dstlongname' => 'Georgia Summer Time',
  2873.         'dstshortname' => 'GEST' ),
  2874.     'Asia/Yerevan' => array(
  2875.         'offset' => 14400000,
  2876.         'longname' => 'Armenia Time',
  2877.         'shortname' => 'AMT',
  2878.         'hasdst' => true,
  2879.         'dstlongname' => 'Armenia Summer Time',
  2880.         'dstshortname' => 'AMST' ),
  2881.     'Etc/GMT-4' => array(
  2882.         'offset' => 14400000,
  2883.         'longname' => 'GMT+04:00',
  2884.         'shortname' => 'GMT+04:00',
  2885.         'hasdst' => false ),
  2886.     'Europe/Samara' => array(
  2887.         'offset' => 14400000,
  2888.         'longname' => 'Samara Time',
  2889.         'shortname' => 'SAMT',
  2890.         'hasdst' => true,
  2891.         'dstlongname' => 'Samara Summer Time',
  2892.         'dstshortname' => 'SAMST' ),
  2893.     'Indian/Mahe' => array(
  2894.         'offset' => 14400000,
  2895.         'longname' => 'Seychelles Time',
  2896.         'shortname' => 'SCT',
  2897.         'hasdst' => false ),
  2898.     'Indian/Mauritius' => array(
  2899.         'offset' => 14400000,
  2900.         'longname' => 'Mauritius Time',
  2901.         'shortname' => 'MUT',
  2902.         'hasdst' => false ),
  2903.     'Indian/Reunion' => array(
  2904.         'offset' => 14400000,
  2905.         'longname' => 'Reunion Time',
  2906.         'shortname' => 'RET',
  2907.         'hasdst' => false ),
  2908.     'NET' => array(
  2909.         'offset' => 14400000,
  2910.         'longname' => 'Armenia Time',
  2911.         'shortname' => 'AMT',
  2912.         'hasdst' => true,
  2913.         'dstlongname' => 'Armenia Summer Time',
  2914.         'dstshortname' => 'AMST' ),
  2915.     'Asia/Kabul' => array(
  2916.         'offset' => 16200000,
  2917.         'longname' => 'Afghanistan Time',
  2918.         'shortname' => 'AFT',
  2919.         'hasdst' => false ),
  2920.     'Asia/Aqtobe' => array(
  2921.         'offset' => 18000000,
  2922.         'longname' => 'Aqtobe Time',
  2923.         'shortname' => 'AQTT',
  2924.         'hasdst' => true,
  2925.         'dstlongname' => 'Aqtobe Summer Time',
  2926.         'dstshortname' => 'AQTST' ),
  2927.     'Asia/Ashgabat' => array(
  2928.         'offset' => 18000000,
  2929.         'longname' => 'Turkmenistan Time',
  2930.         'shortname' => 'TMT',
  2931.         'hasdst' => false ),
  2932.     'Asia/Ashkhabad' => array(
  2933.         'offset' => 18000000,
  2934.         'longname' => 'Turkmenistan Time',
  2935.         'shortname' => 'TMT',
  2936.         'hasdst' => false ),
  2937.     'Asia/Bishkek' => array(
  2938.         'offset' => 18000000,
  2939.         'longname' => 'Kirgizstan Time',
  2940.         'shortname' => 'KGT',
  2941.         'hasdst' => true,
  2942.         'dstlongname' => 'Kirgizstan Summer Time',
  2943.         'dstshortname' => 'KGST' ),
  2944.     'Asia/Dushanbe' => array(
  2945.         'offset' => 18000000,
  2946.         'longname' => 'Tajikistan Time',
  2947.         'shortname' => 'TJT',
  2948.         'hasdst' => false ),
  2949.     'Asia/Karachi' => array(
  2950.         'offset' => 18000000,
  2951.         'longname' => 'Pakistan Time',
  2952.         'shortname' => 'PKT',
  2953.         'hasdst' => false ),
  2954.     'Asia/Samarkand' => array(
  2955.         'offset' => 18000000,
  2956.         'longname' => 'Turkmenistan Time',
  2957.         'shortname' => 'TMT',
  2958.         'hasdst' => false ),
  2959.     'Asia/Tashkent' => array(
  2960.         'offset' => 18000000,
  2961.         'longname' => 'Uzbekistan Time',
  2962.         'shortname' => 'UZT',
  2963.         'hasdst' => false ),
  2964.     'Asia/Yekaterinburg' => array(
  2965.         'offset' => 18000000,
  2966.         'longname' => 'Yekaterinburg Time',
  2967.         'shortname' => 'YEKT',
  2968.         'hasdst' => true,
  2969.         'dstlongname' => 'Yekaterinburg Summer Time',
  2970.         'dstshortname' => 'YEKST' ),
  2971.     'Etc/GMT-5' => array(
  2972.         'offset' => 18000000,
  2973.         'longname' => 'GMT+05:00',
  2974.         'shortname' => 'GMT+05:00',
  2975.         'hasdst' => false ),
  2976.     'Indian/Kerguelen' => array(
  2977.         'offset' => 18000000,
  2978.         'longname' => 'French Southern & Antarctic Lands Time',
  2979.         'shortname' => 'TFT',
  2980.         'hasdst' => false ),
  2981.     'Indian/Maldives' => array(
  2982.         'offset' => 18000000,
  2983.         'longname' => 'Maldives Time',
  2984.         'shortname' => 'MVT',
  2985.         'hasdst' => false ),
  2986.     'PLT' => array(
  2987.         'offset' => 18000000,
  2988.         'longname' => 'Pakistan Time',
  2989.         'shortname' => 'PKT',
  2990.         'hasdst' => false ),
  2991.     'Asia/Calcutta' => array(
  2992.         'offset' => 19800000,
  2993.         'longname' => 'India Standard Time',
  2994.         'shortname' => 'IST',
  2995.         'hasdst' => false ),
  2996.     'IST' => array(
  2997.         'offset' => 19800000,
  2998.         'longname' => 'India Standard Time',
  2999.         'shortname' => 'IST',
  3000.         'hasdst' => false ),
  3001.     'Asia/Katmandu' => array(
  3002.         'offset' => 20700000,
  3003.         'longname' => 'Nepal Time',
  3004.         'shortname' => 'NPT',
  3005.         'hasdst' => false ),
  3006.     'Antarctica/Mawson' => array(
  3007.         'offset' => 21600000,
  3008.         'longname' => 'Mawson Time',
  3009.         'shortname' => 'MAWT',
  3010.         'hasdst' => false ),
  3011.     'Antarctica/Vostok' => array(
  3012.         'offset' => 21600000,
  3013.         'longname' => 'Vostok time',
  3014.         'shortname' => 'VOST',
  3015.         'hasdst' => false ),
  3016.     'Asia/Almaty' => array(
  3017.         'offset' => 21600000,
  3018.         'longname' => 'Alma-Ata Time',
  3019.         'shortname' => 'ALMT',
  3020.         'hasdst' => true,
  3021.         'dstlongname' => 'Alma-Ata Summer Time',
  3022.         'dstshortname' => 'ALMST' ),
  3023.     'Asia/Colombo' => array(
  3024.         'offset' => 21600000,
  3025.         'longname' => 'Sri Lanka Time',
  3026.         'shortname' => 'LKT',
  3027.         'hasdst' => false ),
  3028.     'Asia/Dacca' => array(
  3029.         'offset' => 21600000,
  3030.         'longname' => 'Bangladesh Time',
  3031.         'shortname' => 'BDT',
  3032.         'hasdst' => false ),
  3033.     'Asia/Dhaka' => array(
  3034.         'offset' => 21600000,
  3035.         'longname' => 'Bangladesh Time',
  3036.         'shortname' => 'BDT',
  3037.         'hasdst' => false ),
  3038.     'Asia/Novosibirsk' => array(
  3039.         'offset' => 21600000,
  3040.         'longname' => 'Novosibirsk Time',
  3041.         'shortname' => 'NOVT',
  3042.         'hasdst' => true,
  3043.         'dstlongname' => 'Novosibirsk Summer Time',
  3044.         'dstshortname' => 'NOVST' ),
  3045.     'Asia/Omsk' => array(
  3046.         'offset' => 21600000,
  3047.         'longname' => 'Omsk Time',
  3048.         'shortname' => 'OMST',
  3049.         'hasdst' => true,
  3050.         'dstlongname' => 'Omsk Summer Time',
  3051.         'dstshortname' => 'OMSST' ),
  3052.     'Asia/Thimbu' => array(
  3053.         'offset' => 21600000,
  3054.         'longname' => 'Bhutan Time',
  3055.         'shortname' => 'BTT',
  3056.         'hasdst' => false ),
  3057.     'Asia/Thimphu' => array(
  3058.         'offset' => 21600000,
  3059.         'longname' => 'Bhutan Time',
  3060.         'shortname' => 'BTT',
  3061.         'hasdst' => false ),
  3062.     'BDT' => array(
  3063.         'offset' => 21600000,
  3064.         'longname' => 'Bangladesh Time',
  3065.         'shortname' => 'BDT',
  3066.         'hasdst' => false ),
  3067.     'Etc/GMT-6' => array(
  3068.         'offset' => 21600000,
  3069.         'longname' => 'GMT+06:00',
  3070.         'shortname' => 'GMT+06:00',
  3071.         'hasdst' => false ),
  3072.     'Indian/Chagos' => array(
  3073.         'offset' => 21600000,
  3074.         'longname' => 'Indian Ocean Territory Time',
  3075.         'shortname' => 'IOT',
  3076.         'hasdst' => false ),
  3077.     'Asia/Rangoon' => array(
  3078.         'offset' => 23400000,
  3079.         'longname' => 'Myanmar Time',
  3080.         'shortname' => 'MMT',
  3081.         'hasdst' => false ),
  3082.     'Indian/Cocos' => array(
  3083.         'offset' => 23400000,
  3084.         'longname' => 'Cocos Islands Time',
  3085.         'shortname' => 'CCT',
  3086.         'hasdst' => false ),
  3087.     'Antarctica/Davis' => array(
  3088.         'offset' => 25200000,
  3089.         'longname' => 'Davis Time',
  3090.         'shortname' => 'DAVT',
  3091.         'hasdst' => false ),
  3092.     'Asia/Bangkok' => array(
  3093.         'offset' => 25200000,
  3094.         'longname' => 'Indochina Time',
  3095.         'shortname' => 'ICT',
  3096.         'hasdst' => false ),
  3097.     'Asia/Hovd' => array(
  3098.         'offset' => 25200000,
  3099.         'longname' => 'Hovd Time',
  3100.         'shortname' => 'HOVT',
  3101.         'hasdst' => false ),
  3102.     'Asia/Jakarta' => array(
  3103.         'offset' => 25200000,
  3104.         'longname' => 'West Indonesia Time',
  3105.         'shortname' => 'WIT',
  3106.         'hasdst' => false ),
  3107.     'Asia/Krasnoyarsk' => array(
  3108.         'offset' => 25200000,
  3109.         'longname' => 'Krasnoyarsk Time',
  3110.         'shortname' => 'KRAT',
  3111.         'hasdst' => true,
  3112.         'dstlongname' => 'Krasnoyarsk Summer Time',
  3113.         'dstshortname' => 'KRAST' ),
  3114.     'Asia/Phnom_Penh' => array(
  3115.         'offset' => 25200000,
  3116.         'longname' => 'Indochina Time',
  3117.         'shortname' => 'ICT',
  3118.         'hasdst' => false ),
  3119.     'Asia/Pontianak' => array(
  3120.         'offset' => 25200000,
  3121.         'longname' => 'West Indonesia Time',
  3122.         'shortname' => 'WIT',
  3123.         'hasdst' => false ),
  3124.     'Asia/Saigon' => array(
  3125.         'offset' => 25200000,
  3126.         'longname' => 'Indochina Time',
  3127.         'shortname' => 'ICT',
  3128.         'hasdst' => false ),
  3129.     'Asia/Vientiane' => array(
  3130.         'offset' => 25200000,
  3131.         'longname' => 'Indochina Time',
  3132.         'shortname' => 'ICT',
  3133.         'hasdst' => false ),
  3134.     'Etc/GMT-7' => array(
  3135.         'offset' => 25200000,
  3136.         'longname' => 'GMT+07:00',
  3137.         'shortname' => 'GMT+07:00',
  3138.         'hasdst' => false ),
  3139.     'Indian/Christmas' => array(
  3140.         'offset' => 25200000,
  3141.         'longname' => 'Christmas Island Time',
  3142.         'shortname' => 'CXT',
  3143.         'hasdst' => false ),
  3144.     'VST' => array(
  3145.         'offset' => 25200000,
  3146.         'longname' => 'Indochina Time',
  3147.         'shortname' => 'ICT',
  3148.         'hasdst' => false ),
  3149.     'Antarctica/Casey' => array(
  3150.         'offset' => 28800000,
  3151.         'longname' => 'Western Standard Time (Australia)',
  3152.         'shortname' => 'WST',
  3153.         'hasdst' => false ),
  3154.     'Asia/Brunei' => array(
  3155.         'offset' => 28800000,
  3156.         'longname' => 'Brunei Time',
  3157.         'shortname' => 'BNT',
  3158.         'hasdst' => false ),
  3159.     'Asia/Chongqing' => array(
  3160.         'offset' => 28800000,
  3161.         'longname' => 'China Standard Time',
  3162.         'shortname' => 'CST',
  3163.         'hasdst' => false ),
  3164.     'Asia/Chungking' => array(
  3165.         'offset' => 28800000,
  3166.         'longname' => 'China Standard Time',
  3167.         'shortname' => 'CST',
  3168.         'hasdst' => false ),
  3169.     'Asia/Harbin' => array(
  3170.         'offset' => 28800000,
  3171.         'longname' => 'China Standard Time',
  3172.         'shortname' => 'CST',
  3173.         'hasdst' => false ),
  3174.     'Asia/Hong_Kong' => array(
  3175.         'offset' => 28800000,
  3176.         'longname' => 'Hong Kong Time',
  3177.         'shortname' => 'HKT',
  3178.         'hasdst' => false ),
  3179.     'Asia/Irkutsk' => array(
  3180.         'offset' => 28800000,
  3181.         'longname' => 'Irkutsk Time',
  3182.         'shortname' => 'IRKT',
  3183.         'hasdst' => true,
  3184.         'dstlongname' => 'Irkutsk Summer Time',
  3185.         'dstshortname' => 'IRKST' ),
  3186.     'Asia/Kashgar' => array(
  3187.         'offset' => 28800000,
  3188.         'longname' => 'China Standard Time',
  3189.         'shortname' => 'CST',
  3190.         'hasdst' => false ),
  3191.     'Asia/Kuala_Lumpur' => array(
  3192.         'offset' => 28800000,
  3193.         'longname' => 'Malaysia Time',
  3194.         'shortname' => 'MYT',
  3195.         'hasdst' => false ),
  3196.     'Asia/Kuching' => array(
  3197.         'offset' => 28800000,
  3198.         'longname' => 'Malaysia Time',
  3199.         'shortname' => 'MYT',
  3200.         'hasdst' => false ),
  3201.     'Asia/Macao' => array(
  3202.         'offset' => 28800000,
  3203.         'longname' => 'China Standard Time',
  3204.         'shortname' => 'CST',
  3205.         'hasdst' => false ),
  3206.     'Asia/Manila' => array(
  3207.         'offset' => 28800000,
  3208.         'longname' => 'Philippines Time',
  3209.         'shortname' => 'PHT',
  3210.         'hasdst' => false ),
  3211.     'Asia/Shanghai' => array(
  3212.         'offset' => 28800000,
  3213.         'longname' => 'China Standard Time',
  3214.         'shortname' => 'CST',
  3215.         'hasdst' => false ),
  3216.     'Asia/Singapore' => array(
  3217.         'offset' => 28800000,
  3218.         'longname' => 'Singapore Time',
  3219.         'shortname' => 'SGT',
  3220.         'hasdst' => false ),
  3221.     'Asia/Taipei' => array(
  3222.         'offset' => 28800000,
  3223.         'longname' => 'China Standard Time',
  3224.         'shortname' => 'CST',
  3225.         'hasdst' => false ),
  3226.     'Asia/Ujung_Pandang' => array(
  3227.         'offset' => 28800000,
  3228.         'longname' => 'Central Indonesia Time',
  3229.         'shortname' => 'CIT',
  3230.         'hasdst' => false ),
  3231.     'Asia/Ulaanbaatar' => array(
  3232.         'offset' => 28800000,
  3233.         'longname' => 'Ulaanbaatar Time',
  3234.         'shortname' => 'ULAT',
  3235.         'hasdst' => false ),
  3236.     'Asia/Ulan_Bator' => array(
  3237.         'offset' => 28800000,
  3238.         'longname' => 'Ulaanbaatar Time',
  3239.         'shortname' => 'ULAT',
  3240.         'hasdst' => false ),
  3241.     'Asia/Urumqi' => array(
  3242.         'offset' => 28800000,
  3243.         'longname' => 'China Standard Time',
  3244.         'shortname' => 'CST',
  3245.         'hasdst' => false ),
  3246.     'Australia/Perth' => array(
  3247.         'offset' => 28800000,
  3248.         'longname' => 'Western Standard Time (Australia)',
  3249.         'shortname' => 'WST',
  3250.         'hasdst' => false ),
  3251.     'Australia/West' => array(
  3252.         'offset' => 28800000,
  3253.         'longname' => 'Western Standard Time (Australia)',
  3254.         'shortname' => 'WST',
  3255.         'hasdst' => false ),
  3256.     'CTT' => array(
  3257.         'offset' => 28800000,
  3258.         'longname' => 'China Standard Time',
  3259.         'shortname' => 'CST',
  3260.         'hasdst' => false ),
  3261.     'Etc/GMT-8' => array(
  3262.         'offset' => 28800000,
  3263.         'longname' => 'GMT+08:00',
  3264.         'shortname' => 'GMT+08:00',
  3265.         'hasdst' => false ),
  3266.     'Hongkong' => array(
  3267.         'offset' => 28800000,
  3268.         'longname' => 'Hong Kong Time',
  3269.         'shortname' => 'HKT',
  3270.         'hasdst' => false ),
  3271.     'PRC' => array(
  3272.         'offset' => 28800000,
  3273.         'longname' => 'China Standard Time',
  3274.         'shortname' => 'CST',
  3275.         'hasdst' => false ),
  3276.     'Singapore' => array(
  3277.         'offset' => 28800000,
  3278.         'longname' => 'Singapore Time',
  3279.         'shortname' => 'SGT',
  3280.         'hasdst' => false ),
  3281.     'Asia/Choibalsan' => array(
  3282.         'offset' => 32400000,
  3283.         'longname' => 'Choibalsan Time',
  3284.         'shortname' => 'CHOT',
  3285.         'hasdst' => false ),
  3286.     'Asia/Dili' => array(
  3287.         'offset' => 32400000,
  3288.         'longname' => 'East Timor Time',
  3289.         'shortname' => 'TPT',
  3290.         'hasdst' => false ),
  3291.     'Asia/Jayapura' => array(
  3292.         'offset' => 32400000,
  3293.         'longname' => 'East Indonesia Time',
  3294.         'shortname' => 'EIT',
  3295.         'hasdst' => false ),
  3296.     'Asia/Pyongyang' => array(
  3297.         'offset' => 32400000,
  3298.         'longname' => 'Korea Standard Time',
  3299.         'shortname' => 'KST',
  3300.         'hasdst' => false ),
  3301.     'Asia/Seoul' => array(
  3302.         'offset' => 32400000,
  3303.         'longname' => 'Korea Standard Time',
  3304.         'shortname' => 'KST',
  3305.         'hasdst' => false ),
  3306.     'Asia/Tokyo' => array(
  3307.         'offset' => 32400000,
  3308.         'longname' => 'Japan Standard Time',
  3309.         'shortname' => 'JST',
  3310.         'hasdst' => false ),
  3311.     'Asia/Yakutsk' => array(
  3312.         'offset' => 32400000,
  3313.         'longname' => 'Yakutsk Time',
  3314.         'shortname' => 'YAKT',
  3315.         'hasdst' => true,
  3316.         'dstlongname' => 'Yaktsk Summer Time',
  3317.         'dstshortname' => 'YAKST' ),
  3318.     'Etc/GMT-9' => array(
  3319.         'offset' => 32400000,
  3320.         'longname' => 'GMT+09:00',
  3321.         'shortname' => 'GMT+09:00',
  3322.         'hasdst' => false ),
  3323.     'JST' => array(
  3324.         'offset' => 32400000,
  3325.         'longname' => 'Japan Standard Time',
  3326.         'shortname' => 'JST',
  3327.         'hasdst' => false ),
  3328.     'Japan' => array(
  3329.         'offset' => 32400000,
  3330.         'longname' => 'Japan Standard Time',
  3331.         'shortname' => 'JST',
  3332.         'hasdst' => false ),
  3333.     'Pacific/Palau' => array(
  3334.         'offset' => 32400000,
  3335.         'longname' => 'Palau Time',
  3336.         'shortname' => 'PWT',
  3337.         'hasdst' => false ),
  3338.     'ROK' => array(
  3339.         'offset' => 32400000,
  3340.         'longname' => 'Korea Standard Time',
  3341.         'shortname' => 'KST',
  3342.         'hasdst' => false ),
  3343.     'ACT' => array(
  3344.         'offset' => 34200000,
  3345.         'longname' => 'Central Standard Time (Northern Territory)',
  3346.         'shortname' => 'CST',
  3347.         'hasdst' => false ),
  3348.     'Australia/Adelaide' => array(
  3349.         'offset' => 34200000,
  3350.         'longname' => 'Central Standard Time (South Australia)',
  3351.         'shortname' => 'CST',
  3352.         'hasdst' => true,
  3353.         'dstlongname' => 'Central Summer Time (South Australia)',
  3354.         'dstshortname' => 'CST' ),
  3355.     'Australia/Broken_Hill' => array(
  3356.         'offset' => 34200000,
  3357.         'longname' => 'Central Standard Time (South Australia/New South Wales)',
  3358.         'shortname' => 'CST',
  3359.         'hasdst' => true,
  3360.         'dstlongname' => 'Central Summer Time (South Australia/New South Wales)',
  3361.         'dstshortname' => 'CST' ),
  3362.     'Australia/Darwin' => array(
  3363.         'offset' => 34200000,
  3364.         'longname' => 'Central Standard Time (Northern Territory)',
  3365.         'shortname' => 'CST',
  3366.         'hasdst' => false ),
  3367.     'Australia/North' => array(
  3368.         'offset' => 34200000,
  3369.         'longname' => 'Central Standard Time (Northern Territory)',
  3370.         'shortname' => 'CST',
  3371.         'hasdst' => false ),
  3372.     'Australia/South' => array(
  3373.         'offset' => 34200000,
  3374.         'longname' => 'Central Standard Time (South Australia)',
  3375.         'shortname' => 'CST',
  3376.         'hasdst' => true,
  3377.         'dstlongname' => 'Central Summer Time (South Australia)',
  3378.         'dstshortname' => 'CST' ),
  3379.     'Australia/Yancowinna' => array(
  3380.         'offset' => 34200000,
  3381.         'longname' => 'Central Standard Time (South Australia/New South Wales)',
  3382.         'shortname' => 'CST',
  3383.         'hasdst' => true,
  3384.         'dstlongname' => 'Central Summer Time (South Australia/New South Wales)',
  3385.         'dstshortname' => 'CST' ),
  3386.     'AET' => array(
  3387.         'offset' => 36000000,
  3388.         'longname' => 'Eastern Standard Time (New South Wales)',
  3389.         'shortname' => 'EST',
  3390.         'hasdst' => true,
  3391.         'dstlongname' => 'Eastern Summer Time (New South Wales)',
  3392.         'dstshortname' => 'EST' ),
  3393.     'Antarctica/DumontDUrville' => array(
  3394.         'offset' => 36000000,
  3395.         'longname' => 'Dumont-d\'Urville Time',
  3396.         'shortname' => 'DDUT',
  3397.         'hasdst' => false ),
  3398.     'Asia/Sakhalin' => array(
  3399.         'offset' => 36000000,
  3400.         'longname' => 'Sakhalin Time',
  3401.         'shortname' => 'SAKT',
  3402.         'hasdst' => true,
  3403.         'dstlongname' => 'Sakhalin Summer Time',
  3404.         'dstshortname' => 'SAKST' ),
  3405.     'Asia/Vladivostok' => array(
  3406.         'offset' => 36000000,
  3407.         'longname' => 'Vladivostok Time',
  3408.         'shortname' => 'VLAT',
  3409.         'hasdst' => true,
  3410.         'dstlongname' => 'Vladivostok Summer Time',
  3411.         'dstshortname' => 'VLAST' ),
  3412.     'Australia/ACT' => array(
  3413.         'offset' => 36000000,
  3414.         'longname' => 'Eastern Standard Time (New South Wales)',
  3415.         'shortname' => 'EST',
  3416.         'hasdst' => true,
  3417.         'dstlongname' => 'Eastern Summer Time (New South Wales)',
  3418.         'dstshortname' => 'EST' ),
  3419.     'Australia/Brisbane' => array(
  3420.         'offset' => 36000000,
  3421.         'longname' => 'Eastern Standard Time (Queensland)',
  3422.         'shortname' => 'EST',
  3423.         'hasdst' => false ),
  3424.     'Australia/Canberra' => array(
  3425.         'offset' => 36000000,
  3426.         'longname' => 'Eastern Standard Time (New South Wales)',
  3427.         'shortname' => 'EST',
  3428.         'hasdst' => true,
  3429.         'dstlongname' => 'Eastern Summer Time (New South Wales)',
  3430.         'dstshortname' => 'EST' ),
  3431.     'Australia/Hobart' => array(
  3432.         'offset' => 36000000,
  3433.         'longname' => 'Eastern Standard Time (Tasmania)',
  3434.         'shortname' => 'EST',
  3435.         'hasdst' => true,
  3436.         'dstlongname' => 'Eastern Summer Time (Tasmania)',
  3437.         'dstshortname' => 'EST' ),
  3438.     'Australia/Lindeman' => array(
  3439.         'offset' => 36000000,
  3440.         'longname' => 'Eastern Standard Time (Queensland)',
  3441.         'shortname' => 'EST',
  3442.         'hasdst' => false ),
  3443.     'Australia/Melbourne' => array(
  3444.         'offset' => 36000000,
  3445.         'longname' => 'Eastern Standard Time (Victoria)',
  3446.         'shortname' => 'EST',
  3447.         'hasdst' => true,
  3448.         'dstlongname' => 'Eastern Summer Time (Victoria)',
  3449.         'dstshortname' => 'EST' ),
  3450.     'Australia/NSW' => array(
  3451.         'offset' => 36000000,
  3452.         'longname' => 'Eastern Standard Time (New South Wales)',
  3453.         'shortname' => 'EST',
  3454.         'hasdst' => true,
  3455.         'dstlongname' => 'Eastern Summer Time (New South Wales)',
  3456.         'dstshortname' => 'EST' ),
  3457.     'Australia/Queensland' => array(
  3458.         'offset' => 36000000,
  3459.         'longname' => 'Eastern Standard Time (Queensland)',
  3460.         'shortname' => 'EST',
  3461.         'hasdst' => false ),
  3462.     'Australia/Sydney' => array(
  3463.         'offset' => 36000000,
  3464.         'longname' => 'Eastern Standard Time (New South Wales)',
  3465.         'shortname' => 'EST',
  3466.         'hasdst' => true,
  3467.         'dstlongname' => 'Eastern Summer Time (New South Wales)',
  3468.         'dstshortname' => 'EST' ),
  3469.     'Australia/Tasmania' => array(
  3470.         'offset' => 36000000,
  3471.         'longname' => 'Eastern Standard Time (Tasmania)',
  3472.         'shortname' => 'EST',
  3473.         'hasdst' => true,
  3474.         'dstlongname' => 'Eastern Summer Time (Tasmania)',
  3475.         'dstshortname' => 'EST' ),
  3476.     'Australia/Victoria' => array(
  3477.         'offset' => 36000000,
  3478.         'longname' => 'Eastern Standard Time (Victoria)',
  3479.         'shortname' => 'EST',
  3480.         'hasdst' => true,
  3481.         'dstlongname' => 'Eastern Summer Time (Victoria)',
  3482.         'dstshortname' => 'EST' ),
  3483.     'Etc/GMT-10' => array(
  3484.         'offset' => 36000000,
  3485.         'longname' => 'GMT+10:00',
  3486.         'shortname' => 'GMT+10:00',
  3487.         'hasdst' => false ),
  3488.     'Pacific/Guam' => array(
  3489.         'offset' => 36000000,
  3490.         'longname' => 'Chamorro Standard Time',
  3491.         'shortname' => 'ChST',
  3492.         'hasdst' => false ),
  3493.     'Pacific/Port_Moresby' => array(
  3494.         'offset' => 36000000,
  3495.         'longname' => 'Papua New Guinea Time',
  3496.         'shortname' => 'PGT',
  3497.         'hasdst' => false ),
  3498.     'Pacific/Saipan' => array(
  3499.         'offset' => 36000000,
  3500.         'longname' => 'Chamorro Standard Time',
  3501.         'shortname' => 'ChST',
  3502.         'hasdst' => false ),
  3503.     'Pacific/Truk' => array(
  3504.         'offset' => 36000000,
  3505.         'longname' => 'Truk Time',
  3506.         'shortname' => 'TRUT',
  3507.         'hasdst' => false ),
  3508.     'Pacific/Yap' => array(
  3509.         'offset' => 36000000,
  3510.         'longname' => 'Yap Time',
  3511.         'shortname' => 'YAPT',
  3512.         'hasdst' => false ),
  3513.     'Australia/LHI' => array(
  3514.         'offset' => 37800000,
  3515.         'longname' => 'Load Howe Standard Time',
  3516.         'shortname' => 'LHST',
  3517.         'hasdst' => true,
  3518.         'dstlongname' => 'Load Howe Summer Time',
  3519.         'dstshortname' => 'LHST' ),
  3520.     'Australia/Lord_Howe' => array(
  3521.         'offset' => 37800000,
  3522.         'longname' => 'Load Howe Standard Time',
  3523.         'shortname' => 'LHST',
  3524.         'hasdst' => true,
  3525.         'dstlongname' => 'Load Howe Summer Time',
  3526.         'dstshortname' => 'LHST' ),
  3527.     'Asia/Magadan' => array(
  3528.         'offset' => 39600000,
  3529.         'longname' => 'Magadan Time',
  3530.         'shortname' => 'MAGT',
  3531.         'hasdst' => true,
  3532.         'dstlongname' => 'Magadan Summer Time',
  3533.         'dstshortname' => 'MAGST' ),
  3534.     'Etc/GMT-11' => array(
  3535.         'offset' => 39600000,
  3536.         'longname' => 'GMT+11:00',
  3537.         'shortname' => 'GMT+11:00',
  3538.         'hasdst' => false ),
  3539.     'Pacific/Efate' => array(
  3540.         'offset' => 39600000,
  3541.         'longname' => 'Vanuatu Time',
  3542.         'shortname' => 'VUT',
  3543.         'hasdst' => false ),
  3544.     'Pacific/Guadalcanal' => array(
  3545.         'offset' => 39600000,
  3546.         'longname' => 'Solomon Is. Time',
  3547.         'shortname' => 'SBT',
  3548.         'hasdst' => false ),
  3549.     'Pacific/Kosrae' => array(
  3550.         'offset' => 39600000,
  3551.         'longname' => 'Kosrae Time',
  3552.         'shortname' => 'KOST',
  3553.         'hasdst' => false ),
  3554.     'Pacific/Noumea' => array(
  3555.         'offset' => 39600000,
  3556.         'longname' => 'New Caledonia Time',
  3557.         'shortname' => 'NCT',
  3558.         'hasdst' => false ),
  3559.     'Pacific/Ponape' => array(
  3560.         'offset' => 39600000,
  3561.         'longname' => 'Ponape Time',
  3562.         'shortname' => 'PONT',
  3563.         'hasdst' => false ),
  3564.     'SST' => array(
  3565.         'offset' => 39600000,
  3566.         'longname' => 'Solomon Is. Time',
  3567.         'shortname' => 'SBT',
  3568.         'hasdst' => false ),
  3569.     'Pacific/Norfolk' => array(
  3570.         'offset' => 41400000,
  3571.         'longname' => 'Norfolk Time',
  3572.         'shortname' => 'NFT',
  3573.         'hasdst' => false ),
  3574.     'Antarctica/McMurdo' => array(
  3575.         'offset' => 43200000,
  3576.         'longname' => 'New Zealand Standard Time',
  3577.         'shortname' => 'NZST',
  3578.         'hasdst' => true,
  3579.         'dstlongname' => 'New Zealand Daylight Time',
  3580.         'dstshortname' => 'NZDT' ),
  3581.     'Antarctica/South_Pole' => array(
  3582.         'offset' => 43200000,
  3583.         'longname' => 'New Zealand Standard Time',
  3584.         'shortname' => 'NZST',
  3585.         'hasdst' => true,
  3586.         'dstlongname' => 'New Zealand Daylight Time',
  3587.         'dstshortname' => 'NZDT' ),
  3588.     'Asia/Anadyr' => array(
  3589.         'offset' => 43200000,
  3590.         'longname' => 'Anadyr Time',
  3591.         'shortname' => 'ANAT',
  3592.         'hasdst' => true,
  3593.         'dstlongname' => 'Anadyr Summer Time',
  3594.         'dstshortname' => 'ANAST' ),
  3595.     'Asia/Kamchatka' => array(
  3596.         'offset' => 43200000,
  3597.         'longname' => 'Petropavlovsk-Kamchatski Time',
  3598.         'shortname' => 'PETT',
  3599.         'hasdst' => true,
  3600.         'dstlongname' => 'Petropavlovsk-Kamchatski Summer Time',
  3601.         'dstshortname' => 'PETST' ),
  3602.     'Etc/GMT-12' => array(
  3603.         'offset' => 43200000,
  3604.         'longname' => 'GMT+12:00',
  3605.         'shortname' => 'GMT+12:00',
  3606.         'hasdst' => false ),
  3607.     'Kwajalein' => array(
  3608.         'offset' => 43200000,
  3609.         'longname' => 'Marshall Islands Time',
  3610.         'shortname' => 'MHT',
  3611.         'hasdst' => false ),
  3612.     'NST' => array(
  3613.         'offset' => 43200000,
  3614.         'longname' => 'New Zealand Standard Time',
  3615.         'shortname' => 'NZST',
  3616.         'hasdst' => true,
  3617.         'dstlongname' => 'New Zealand Daylight Time',
  3618.         'dstshortname' => 'NZDT' ),
  3619.     'NZ' => array(
  3620.         'offset' => 43200000,
  3621.         'longname' => 'New Zealand Standard Time',
  3622.         'shortname' => 'NZST',
  3623.         'hasdst' => true,
  3624.         'dstlongname' => 'New Zealand Daylight Time',
  3625.         'dstshortname' => 'NZDT' ),
  3626.     'Pacific/Auckland' => array(
  3627.         'offset' => 43200000,
  3628.         'longname' => 'New Zealand Standard Time',
  3629.         'shortname' => 'NZST',
  3630.         'hasdst' => true,
  3631.         'dstlongname' => 'New Zealand Daylight Time',
  3632.         'dstshortname' => 'NZDT' ),
  3633.     'Pacific/Fiji' => array(
  3634.         'offset' => 43200000,
  3635.         'longname' => 'Fiji Time',
  3636.         'shortname' => 'FJT',
  3637.         'hasdst' => false ),
  3638.     'Pacific/Funafuti' => array(
  3639.         'offset' => 43200000,
  3640.         'longname' => 'Tuvalu Time',
  3641.         'shortname' => 'TVT',
  3642.         'hasdst' => false ),
  3643.     'Pacific/Kwajalein' => array(
  3644.         'offset' => 43200000,
  3645.         'longname' => 'Marshall Islands Time',
  3646.         'shortname' => 'MHT',
  3647.         'hasdst' => false ),
  3648.     'Pacific/Majuro' => array(
  3649.         'offset' => 43200000,
  3650.         'longname' => 'Marshall Islands Time',
  3651.         'shortname' => 'MHT',
  3652.         'hasdst' => false ),
  3653.     'Pacific/Nauru' => array(
  3654.         'offset' => 43200000,
  3655.         'longname' => 'Nauru Time',
  3656.         'shortname' => 'NRT',
  3657.         'hasdst' => false ),
  3658.     'Pacific/Tarawa' => array(
  3659.         'offset' => 43200000,
  3660.         'longname' => 'Gilbert Is. Time',
  3661.         'shortname' => 'GILT',
  3662.         'hasdst' => false ),
  3663.     'Pacific/Wake' => array(
  3664.         'offset' => 43200000,
  3665.         'longname' => 'Wake Time',
  3666.         'shortname' => 'WAKT',
  3667.         'hasdst' => false ),
  3668.     'Pacific/Wallis' => array(
  3669.         'offset' => 43200000,
  3670.         'longname' => 'Wallis & Futuna Time',
  3671.         'shortname' => 'WFT',
  3672.         'hasdst' => false ),
  3673.     'NZ-CHAT' => array(
  3674.         'offset' => 45900000,
  3675.         'longname' => 'Chatham Standard Time',
  3676.         'shortname' => 'CHAST',
  3677.         'hasdst' => true,
  3678.         'dstlongname' => 'Chatham Daylight Time',
  3679.         'dstshortname' => 'CHADT' ),
  3680.     'Pacific/Chatham' => array(
  3681.         'offset' => 45900000,
  3682.         'longname' => 'Chatham Standard Time',
  3683.         'shortname' => 'CHAST',
  3684.         'hasdst' => true,
  3685.         'dstlongname' => 'Chatham Daylight Time',
  3686.         'dstshortname' => 'CHADT' ),
  3687.     'Etc/GMT-13' => array(
  3688.         'offset' => 46800000,
  3689.         'longname' => 'GMT+13:00',
  3690.         'shortname' => 'GMT+13:00',
  3691.         'hasdst' => false ),
  3692.     'Pacific/Enderbury' => array(
  3693.         'offset' => 46800000,
  3694.         'longname' => 'Phoenix Is. Time',
  3695.         'shortname' => 'PHOT',
  3696.         'hasdst' => false ),
  3697.     'Pacific/Tongatapu' => array(
  3698.         'offset' => 46800000,
  3699.         'longname' => 'Tonga Time',
  3700.         'shortname' => 'TOT',
  3701.         'hasdst' => false ),
  3702.     'Etc/GMT-14' => array(
  3703.         'offset' => 50400000,
  3704.         'longname' => 'GMT+14:00',
  3705.         'shortname' => 'GMT+14:00',
  3706.         'hasdst' => false ),
  3707.     'Pacific/Kiritimati' => array(
  3708.         'offset' => 50400000,
  3709.         'longname' => 'Line Is. Time',
  3710.         'shortname' => 'LINT',
  3711.         'hasdst' => false ),
  3712.     'GMT-12:00' => array(
  3713.         'offset' => -43200000,
  3714.         'longname' => 'GMT-12:00',
  3715.         'shortname' => 'GMT-12:00',
  3716.         'hasdst' => false ),
  3717.     'GMT-11:00' => array(
  3718.         'offset' => -39600000,
  3719.         'longname' => 'GMT-11:00',
  3720.         'shortname' => 'GMT-11:00',
  3721.         'hasdst' => false ),
  3722.     'West Samoa Time' => array(
  3723.         'offset' => -39600000,
  3724.         'longname' => 'West Samoa Time',
  3725.         'shortname' => 'WST',
  3726.         'hasdst' => false ),
  3727.     'Samoa Standard Time' => array(
  3728.         'offset' => -39600000,
  3729.         'longname' => 'Samoa Standard Time',
  3730.         'shortname' => 'SST',
  3731.         'hasdst' => false ),
  3732.     'Niue Time' => array(
  3733.         'offset' => -39600000,
  3734.         'longname' => 'Niue Time',
  3735.         'shortname' => 'NUT',
  3736.         'hasdst' => false ),
  3737.     'Hawaii-Aleutian Standard Time' => array(
  3738.         'offset' => -36000000,
  3739.         'longname' => 'Hawaii-Aleutian Standard Time',
  3740.         'shortname' => 'HAST',
  3741.         'hasdst' => true,
  3742.         'dstlongname' => 'Hawaii-Aleutian Daylight Time',
  3743.         'dstshortname' => 'HADT' ),
  3744.     'GMT-10:00' => array(
  3745.         'offset' => -36000000,
  3746.         'longname' => 'GMT-10:00',
  3747.         'shortname' => 'GMT-10:00',
  3748.         'hasdst' => false ),
  3749.     'Hawaii Standard Time' => array(
  3750.         'offset' => -36000000,
  3751.         'longname' => 'Hawaii Standard Time',
  3752.         'shortname' => 'HST',
  3753.         'hasdst' => false ),
  3754.     'Tokelau Time' => array(
  3755.         'offset' => -36000000,
  3756.         'longname' => 'Tokelau Time',
  3757.         'shortname' => 'TKT',
  3758.         'hasdst' => false ),
  3759.     'Cook Is. Time' => array(
  3760.         'offset' => -36000000,
  3761.         'longname' => 'Cook Is. Time',
  3762.         'shortname' => 'CKT',
  3763.         'hasdst' => false ),
  3764.     'Tahiti Time' => array(
  3765.         'offset' => -36000000,
  3766.         'longname' => 'Tahiti Time',
  3767.         'shortname' => 'TAHT',
  3768.         'hasdst' => false ),
  3769.     'Marquesas Time' => array(
  3770.         'offset' => -34200000,
  3771.         'longname' => 'Marquesas Time',
  3772.         'shortname' => 'MART',
  3773.         'hasdst' => false ),
  3774.     'Alaska Standard Time' => array(
  3775.         'offset' => -32400000,
  3776.         'longname' => 'Alaska Standard Time',
  3777.         'shortname' => 'AKST',
  3778.         'hasdst' => true,
  3779.         'dstlongname' => 'Alaska Daylight Time',
  3780.         'dstshortname' => 'AKDT' ),
  3781.     'GMT-09:00' => array(
  3782.         'offset' => -32400000,
  3783.         'longname' => 'GMT-09:00',
  3784.         'shortname' => 'GMT-09:00',
  3785.         'hasdst' => false ),
  3786.     'Gambier Time' => array(
  3787.         'offset' => -32400000,
  3788.         'longname' => 'Gambier Time',
  3789.         'shortname' => 'GAMT',
  3790.         'hasdst' => false ),
  3791.     'Pacific Standard Time' => array(
  3792.         'offset' => -28800000,
  3793.         'longname' => 'Pacific Standard Time',
  3794.         'shortname' => 'PST',
  3795.         'hasdst' => true,
  3796.         'dstlongname' => 'Pacific Daylight Time',
  3797.         'dstshortname' => 'PDT' ),
  3798.     'GMT-08:00' => array(
  3799.         'offset' => -28800000,
  3800.         'longname' => 'GMT-08:00',
  3801.         'shortname' => 'GMT-08:00',
  3802.         'hasdst' => false ),
  3803.     'Pitcairn Standard Time' => array(
  3804.         'offset' => -28800000,
  3805.         'longname' => 'Pitcairn Standard Time',
  3806.         'shortname' => 'PST',
  3807.         'hasdst' => false ),
  3808.     'Mountain Standard Time' => array(
  3809.         'offset' => -25200000,
  3810.         'longname' => 'Mountain Standard Time',
  3811.         'shortname' => 'MST',
  3812.         'hasdst' => true,
  3813.         'dstlongname' => 'Mountain Daylight Time',
  3814.         'dstshortname' => 'MDT' ),
  3815.     'GMT-07:00' => array(
  3816.         'offset' => -25200000,
  3817.         'longname' => 'GMT-07:00',
  3818.         'shortname' => 'GMT-07:00',
  3819.         'hasdst' => false ),
  3820.     'Central Standard Time' => array(
  3821.         'offset' => -18000000,
  3822.         'longname' => 'Central Standard Time',
  3823.         'shortname' => 'CST',
  3824.         'hasdst' => true,
  3825.         'dstlongname' => 'Central Daylight Time',
  3826.         'dstshortname' => 'CDT' ),
  3827.     'Eastern Standard Time' => array(
  3828.         'offset' => -18000000,
  3829.         'longname' => 'Eastern Standard Time',
  3830.         'shortname' => 'EST',
  3831.         'hasdst' => true,
  3832.         'dstlongname' => 'Eastern Daylight Time',
  3833.         'dstshortname' => 'EDT' ),
  3834.     'Easter Is. Time' => array(
  3835.         'offset' => -21600000,
  3836.         'longname' => 'Easter Is. Time',
  3837.         'shortname' => 'EAST',
  3838.         'hasdst' => true,
  3839.         'dstlongname' => 'Easter Is. Summer Time',
  3840.         'dstshortname' => 'EASST' ),
  3841.     'GMT-06:00' => array(
  3842.         'offset' => -21600000,
  3843.         'longname' => 'GMT-06:00',
  3844.         'shortname' => 'GMT-06:00',
  3845.         'hasdst' => false ),
  3846.     'Galapagos Time' => array(
  3847.         'offset' => -21600000,
  3848.         'longname' => 'Galapagos Time',
  3849.         'shortname' => 'GALT',
  3850.         'hasdst' => false ),
  3851.     'Colombia Time' => array(
  3852.         'offset' => -18000000,
  3853.         'longname' => 'Colombia Time',
  3854.         'shortname' => 'COT',
  3855.         'hasdst' => false ),
  3856.     'Acre Time' => array(
  3857.         'offset' => -18000000,
  3858.         'longname' => 'Acre Time',
  3859.         'shortname' => 'ACT',
  3860.         'hasdst' => false ),
  3861.     'Ecuador Time' => array(
  3862.         'offset' => -18000000,
  3863.         'longname' => 'Ecuador Time',
  3864.         'shortname' => 'ECT',
  3865.         'hasdst' => false ),
  3866.     'Peru Time' => array(
  3867.         'offset' => -18000000,
  3868.         'longname' => 'Peru Time',
  3869.         'shortname' => 'PET',
  3870.         'hasdst' => false ),
  3871.     'GMT-05:00' => array(
  3872.         'offset' => -18000000,
  3873.         'longname' => 'GMT-05:00',
  3874.         'shortname' => 'GMT-05:00',
  3875.         'hasdst' => false ),
  3876.     'Atlantic Standard Time' => array(
  3877.         'offset' => -14400000,
  3878.         'longname' => 'Atlantic Standard Time',
  3879.         'shortname' => 'AST',
  3880.         'hasdst' => true,
  3881.         'dstlongname' => 'Atlantic Daylight Time',
  3882.         'dstshortname' => 'ADT' ),
  3883.     'Paraguay Time' => array(
  3884.         'offset' => -14400000,
  3885.         'longname' => 'Paraguay Time',
  3886.         'shortname' => 'PYT',
  3887.         'hasdst' => true,
  3888.         'dstlongname' => 'Paraguay Summer Time',
  3889.         'dstshortname' => 'PYST' ),
  3890.     'Amazon Standard Time' => array(
  3891.         'offset' => -14400000,
  3892.         'longname' => 'Amazon Standard Time',
  3893.         'shortname' => 'AMT',
  3894.         'hasdst' => false ),
  3895.     'Venezuela Time' => array(
  3896.         'offset' => -14400000,
  3897.         'longname' => 'Venezuela Time',
  3898.         'shortname' => 'VET',
  3899.         'hasdst' => false ),
  3900.     'Guyana Time' => array(
  3901.         'offset' => -14400000,
  3902.         'longname' => 'Guyana Time',
  3903.         'shortname' => 'GYT',
  3904.         'hasdst' => false ),
  3905.     'Bolivia Time' => array(
  3906.         'offset' => -14400000,
  3907.         'longname' => 'Bolivia Time',
  3908.         'shortname' => 'BOT',
  3909.         'hasdst' => false ),
  3910.     'Chile Time' => array(
  3911.         'offset' => -14400000,
  3912.         'longname' => 'Chile Time',
  3913.         'shortname' => 'CLT',
  3914.         'hasdst' => true,
  3915.         'dstlongname' => 'Chile Summer Time',
  3916.         'dstshortname' => 'CLST' ),
  3917.     'Falkland Is. Time' => array(
  3918.         'offset' => -14400000,
  3919.         'longname' => 'Falkland Is. Time',
  3920.         'shortname' => 'FKT',
  3921.         'hasdst' => true,
  3922.         'dstlongname' => 'Falkland Is. Summer Time',
  3923.         'dstshortname' => 'FKST' ),
  3924.     'GMT-04:00' => array(
  3925.         'offset' => -14400000,
  3926.         'longname' => 'GMT-04:00',
  3927.         'shortname' => 'GMT-04:00',
  3928.         'hasdst' => false ),
  3929.     'Newfoundland Standard Time' => array(
  3930.         'offset' => -12600000,
  3931.         'longname' => 'Newfoundland Standard Time',
  3932.         'shortname' => 'NST',
  3933.         'hasdst' => true,
  3934.         'dstlongname' => 'Newfoundland Daylight Time',
  3935.         'dstshortname' => 'NDT' ),
  3936.     'Argentine Time' => array(
  3937.         'offset' => -10800000,
  3938.         'longname' => 'Argentine Time',
  3939.         'shortname' => 'ART',
  3940.         'hasdst' => false ),
  3941.     'Brazil Time' => array(
  3942.         'offset' => -10800000,
  3943.         'longname' => 'Brazil Time',
  3944.         'shortname' => 'BRT',
  3945.         'hasdst' => true,
  3946.         'dstlongname' => 'Brazil Summer Time',
  3947.         'dstshortname' => 'BRST' ),
  3948.     'French Guiana Time' => array(
  3949.         'offset' => -10800000,
  3950.         'longname' => 'French Guiana Time',
  3951.         'shortname' => 'GFT',
  3952.         'hasdst' => false ),
  3953.     'Western Greenland Time' => array(
  3954.         'offset' => -10800000,
  3955.         'longname' => 'Western Greenland Time',
  3956.         'shortname' => 'WGT',
  3957.         'hasdst' => true,
  3958.         'dstlongname' => 'Western Greenland Summer Time',
  3959.         'dstshortname' => 'WGST' ),
  3960.     'Pierre & Miquelon Standard Time' => array(
  3961.         'offset' => -10800000,
  3962.         'longname' => 'Pierre & Miquelon Standard Time',
  3963.         'shortname' => 'PMST',
  3964.         'hasdst' => true,
  3965.         'dstlongname' => 'Pierre & Miquelon Daylight Time',
  3966.         'dstshortname' => 'PMDT' ),
  3967.     'Uruguay Time' => array(
  3968.         'offset' => -10800000,
  3969.         'longname' => 'Uruguay Time',
  3970.         'shortname' => 'UYT',
  3971.         'hasdst' => false ),
  3972.     'Suriname Time' => array(
  3973.         'offset' => -10800000,
  3974.         'longname' => 'Suriname Time',
  3975.         'shortname' => 'SRT',
  3976.         'hasdst' => false ),
  3977.     'GMT-03:00' => array(
  3978.         'offset' => -10800000,
  3979.         'longname' => 'GMT-03:00',
  3980.         'shortname' => 'GMT-03:00',
  3981.         'hasdst' => false ),
  3982.     'Fernando de Noronha Time' => array(
  3983.         'offset' => -7200000,
  3984.         'longname' => 'Fernando de Noronha Time',
  3985.         'shortname' => 'FNT',
  3986.         'hasdst' => false ),
  3987.     'South Georgia Standard Time' => array(
  3988.         'offset' => -7200000,
  3989.         'longname' => 'South Georgia Standard Time',
  3990.         'shortname' => 'GST',
  3991.         'hasdst' => false ),
  3992.     'GMT-02:00' => array(
  3993.         'offset' => -7200000,
  3994.         'longname' => 'GMT-02:00',
  3995.         'shortname' => 'GMT-02:00',
  3996.         'hasdst' => false ),
  3997.     'Eastern Greenland Time' => array(
  3998.         'offset' => 3600000,
  3999.         'longname' => 'Eastern Greenland Time',
  4000.         'shortname' => 'EGT',
  4001.         'hasdst' => true,
  4002.         'dstlongname' => 'Eastern Greenland Summer Time',
  4003.         'dstshortname' => 'EGST' ),
  4004.     'Azores Time' => array(
  4005.         'offset' => -3600000,
  4006.         'longname' => 'Azores Time',
  4007.         'shortname' => 'AZOT',
  4008.         'hasdst' => true,
  4009.         'dstlongname' => 'Azores Summer Time',
  4010.         'dstshortname' => 'AZOST' ),
  4011.     'Cape Verde Time' => array(
  4012.         'offset' => -3600000,
  4013.         'longname' => 'Cape Verde Time',
  4014.         'shortname' => 'CVT',
  4015.         'hasdst' => false ),
  4016.     'GMT-01:00' => array(
  4017.         'offset' => -3600000,
  4018.         'longname' => 'GMT-01:00',
  4019.         'shortname' => 'GMT-01:00',
  4020.         'hasdst' => false ),
  4021.     'Greenwich Mean Time' => array(
  4022.         'offset' => 0,
  4023.         'longname' => 'Greenwich Mean Time',
  4024.         'shortname' => 'GMT',
  4025.         'hasdst' => false ),
  4026.     'Western European Time' => array(
  4027.         'offset' => 0,
  4028.         'longname' => 'Western European Time',
  4029.         'shortname' => 'WET',
  4030.         'hasdst' => true,
  4031.         'dstlongname' => 'Western European Summer Time',
  4032.         'dstshortname' => 'WEST' ),
  4033.     'GMT+00:00' => array(
  4034.         'offset' => 0,
  4035.         'longname' => 'GMT+00:00',
  4036.         'shortname' => 'GMT+00:00',
  4037.         'hasdst' => false ),
  4038.     'Coordinated Universal Time' => array(
  4039.         'offset' => 0,
  4040.         'longname' => 'Coordinated Universal Time',
  4041.         'shortname' => 'UTC',
  4042.         'hasdst' => false ),
  4043.     'Central European Time' => array(
  4044.         'offset' => 3600000,
  4045.         'longname' => 'Central European Time',
  4046.         'shortname' => 'CET',
  4047.         'hasdst' => true,
  4048.         'dstlongname' => 'Central European Summer Time',
  4049.         'dstshortname' => 'CEST' ),
  4050.     'Western African Time' => array(
  4051.         'offset' => 3600000,
  4052.         'longname' => 'Western African Time',
  4053.         'shortname' => 'WAT',
  4054.         'hasdst' => true,
  4055.         'dstlongname' => 'Western African Summer Time',
  4056.         'dstshortname' => 'WAST' ),
  4057.     'GMT+01:00' => array(
  4058.         'offset' => 3600000,
  4059.         'longname' => 'GMT+01:00',
  4060.         'shortname' => 'GMT+01:00',
  4061.         'hasdst' => false ),
  4062.     'Middle Europe Time' => array(
  4063.         'offset' => 3600000,
  4064.         'longname' => 'Middle Europe Time',
  4065.         'shortname' => 'MET',
  4066.         'hasdst' => true,
  4067.         'dstlongname' => 'Middle Europe Summer Time',
  4068.         'dstshortname' => 'MEST' ),
  4069.     'Eastern European Time' => array(
  4070.         'offset' => 7200000,
  4071.         'longname' => 'Eastern European Time',
  4072.         'shortname' => 'EET',
  4073.         'hasdst' => true,
  4074.         'dstlongname' => 'Eastern European Summer Time',
  4075.         'dstshortname' => 'EEST' ),
  4076.     'Central African Time' => array(
  4077.         'offset' => 7200000,
  4078.         'longname' => 'Central African Time',
  4079.         'shortname' => 'CAT',
  4080.         'hasdst' => false ),
  4081.     'South Africa Standard Time' => array(
  4082.         'offset' => 7200000,
  4083.         'longname' => 'South Africa Standard Time',
  4084.         'shortname' => 'SAST',
  4085.         'hasdst' => false ),
  4086.     'Israel Standard Time' => array(
  4087.         'offset' => 7200000,
  4088.         'longname' => 'Israel Standard Time',
  4089.         'shortname' => 'IST',
  4090.         'hasdst' => true,
  4091.         'dstlongname' => 'Israel Daylight Time',
  4092.         'dstshortname' => 'IDT' ),
  4093.     'GMT+02:00' => array(
  4094.         'offset' => 7200000,
  4095.         'longname' => 'GMT+02:00',
  4096.         'shortname' => 'GMT+02:00',
  4097.         'hasdst' => false ),
  4098.     'Eastern African Time' => array(
  4099.         'offset' => 10800000,
  4100.         'longname' => 'Eastern African Time',
  4101.         'shortname' => 'EAT',
  4102.         'hasdst' => false ),
  4103.     'Syowa Time' => array(
  4104.         'offset' => 10800000,
  4105.         'longname' => 'Syowa Time',
  4106.         'shortname' => 'SYOT',
  4107.         'hasdst' => false ),
  4108.     'Arabia Standard Time' => array(
  4109.         'offset' => 10800000,
  4110.         'longname' => 'Arabia Standard Time',
  4111.         'shortname' => 'AST',
  4112.         'hasdst' => false ),
  4113.     'GMT+03:00' => array(
  4114.         'offset' => 10800000,
  4115.         'longname' => 'GMT+03:00',
  4116.         'shortname' => 'GMT+03:00',
  4117.         'hasdst' => false ),
  4118.     'Moscow Standard Time' => array(
  4119.         'offset' => 10800000,
  4120.         'longname' => 'Moscow Standard Time',
  4121.         'shortname' => 'MSK',
  4122.         'hasdst' => true,
  4123.         'dstlongname' => 'Moscow Daylight Time',
  4124.         'dstshortname' => 'MSD' ),
  4125.     'GMT+03:07' => array(
  4126.         'offset' => 11224000,
  4127.         'longname' => 'GMT+03:07',
  4128.         'shortname' => 'GMT+03:07',
  4129.         'hasdst' => false ),
  4130.     'Iran Time' => array(
  4131.         'offset' => 12600000,
  4132.         'longname' => 'Iran Time',
  4133.         'shortname' => 'IRT',
  4134.         'hasdst' => true,
  4135.         'dstlongname' => 'Iran Sumer Time',
  4136.         'dstshortname' => 'IRST' ),
  4137.     'Aqtau Time' => array(
  4138.         'offset' => 14400000,
  4139.         'longname' => 'Aqtau Time',
  4140.         'shortname' => 'AQTT',
  4141.         'hasdst' => true,
  4142.         'dstlongname' => 'Aqtau Summer Time',
  4143.         'dstshortname' => 'AQTST' ),
  4144.     'Azerbaijan Time' => array(
  4145.         'offset' => 14400000,
  4146.         'longname' => 'Azerbaijan Time',
  4147.         'shortname' => 'AZT',
  4148.         'hasdst' => true,
  4149.         'dstlongname' => 'Azerbaijan Summer Time',
  4150.         'dstshortname' => 'AZST' ),
  4151.     'Gulf Standard Time' => array(
  4152.         'offset' => 14400000,
  4153.         'longname' => 'Gulf Standard Time',
  4154.         'shortname' => 'GST',
  4155.         'hasdst' => false ),
  4156.     'Georgia Time' => array(
  4157.         'offset' => 14400000,
  4158.         'longname' => 'Georgia Time',
  4159.         'shortname' => 'GET',
  4160.         'hasdst' => true,
  4161.         'dstlongname' => 'Georgia Summer Time',
  4162.         'dstshortname' => 'GEST' ),
  4163.     'Armenia Time' => array(
  4164.         'offset' => 14400000,
  4165.         'longname' => 'Armenia Time',
  4166.         'shortname' => 'AMT',
  4167.         'hasdst' => true,
  4168.         'dstlongname' => 'Armenia Summer Time',
  4169.         'dstshortname' => 'AMST' ),
  4170.     'GMT+04:00' => array(
  4171.         'offset' => 14400000,
  4172.         'longname' => 'GMT+04:00',
  4173.         'shortname' => 'GMT+04:00',
  4174.         'hasdst' => false ),
  4175.     'Samara Time' => array(
  4176.         'offset' => 14400000,
  4177.         'longname' => 'Samara Time',
  4178.         'shortname' => 'SAMT',
  4179.         'hasdst' => true,
  4180.         'dstlongname' => 'Samara Summer Time',
  4181.         'dstshortname' => 'SAMST' ),
  4182.     'Seychelles Time' => array(
  4183.         'offset' => 14400000,
  4184.         'longname' => 'Seychelles Time',
  4185.         'shortname' => 'SCT',
  4186.         'hasdst' => false ),
  4187.     'Mauritius Time' => array(
  4188.         'offset' => 14400000,
  4189.         'longname' => 'Mauritius Time',
  4190.         'shortname' => 'MUT',
  4191.         'hasdst' => false ),
  4192.     'Reunion Time' => array(
  4193.         'offset' => 14400000,
  4194.         'longname' => 'Reunion Time',
  4195.         'shortname' => 'RET',
  4196.         'hasdst' => false ),
  4197.     'Afghanistan Time' => array(
  4198.         'offset' => 16200000,
  4199.         'longname' => 'Afghanistan Time',
  4200.         'shortname' => 'AFT',
  4201.         'hasdst' => false ),
  4202.     'Aqtobe Time' => array(
  4203.         'offset' => 18000000,
  4204.         'longname' => 'Aqtobe Time',
  4205.         'shortname' => 'AQTT',
  4206.         'hasdst' => true,
  4207.         'dstlongname' => 'Aqtobe Summer Time',
  4208.         'dstshortname' => 'AQTST' ),
  4209.     'Turkmenistan Time' => array(
  4210.         'offset' => 18000000,
  4211.         'longname' => 'Turkmenistan Time',
  4212.         'shortname' => 'TMT',
  4213.         'hasdst' => false ),
  4214.     'Kirgizstan Time' => array(
  4215.         'offset' => 18000000,
  4216.         'longname' => 'Kirgizstan Time',
  4217.         'shortname' => 'KGT',
  4218.         'hasdst' => true,
  4219.         'dstlongname' => 'Kirgizstan Summer Time',
  4220.         'dstshortname' => 'KGST' ),
  4221.     'Tajikistan Time' => array(
  4222.         'offset' => 18000000,
  4223.         'longname' => 'Tajikistan Time',
  4224.         'shortname' => 'TJT',
  4225.         'hasdst' => false ),
  4226.     'Pakistan Time' => array(
  4227.         'offset' => 18000000,
  4228.         'longname' => 'Pakistan Time',
  4229.         'shortname' => 'PKT',
  4230.         'hasdst' => false ),
  4231.     'Uzbekistan Time' => array(
  4232.         'offset' => 18000000,
  4233.         'longname' => 'Uzbekistan Time',
  4234.         'shortname' => 'UZT',
  4235.         'hasdst' => false ),
  4236.     'Yekaterinburg Time' => array(
  4237.         'offset' => 18000000,
  4238.         'longname' => 'Yekaterinburg Time',
  4239.         'shortname' => 'YEKT',
  4240.         'hasdst' => true,
  4241.         'dstlongname' => 'Yekaterinburg Summer Time',
  4242.         'dstshortname' => 'YEKST' ),
  4243.     'GMT+05:00' => array(
  4244.         'offset' => 18000000,
  4245.         'longname' => 'GMT+05:00',
  4246.         'shortname' => 'GMT+05:00',
  4247.         'hasdst' => false ),
  4248.     'French Southern & Antarctic Lands Time' => array(
  4249.         'offset' => 18000000,
  4250.         'longname' => 'French Southern & Antarctic Lands Time',
  4251.         'shortname' => 'TFT',
  4252.         'hasdst' => false ),
  4253.     'Maldives Time' => array(
  4254.         'offset' => 18000000,
  4255.         'longname' => 'Maldives Time',
  4256.         'shortname' => 'MVT',
  4257.         'hasdst' => false ),
  4258.     'India Standard Time' => array(
  4259.         'offset' => 19800000,
  4260.         'longname' => 'India Standard Time',
  4261.         'shortname' => 'IST',
  4262.         'hasdst' => false ),
  4263.     'Nepal Time' => array(
  4264.         'offset' => 20700000,
  4265.         'longname' => 'Nepal Time',
  4266.         'shortname' => 'NPT',
  4267.         'hasdst' => false ),
  4268.     'Mawson Time' => array(
  4269.         'offset' => 21600000,
  4270.         'longname' => 'Mawson Time',
  4271.         'shortname' => 'MAWT',
  4272.         'hasdst' => false ),
  4273.     'Vostok time' => array(
  4274.         'offset' => 21600000,
  4275.         'longname' => 'Vostok time',
  4276.         'shortname' => 'VOST',
  4277.         'hasdst' => false ),
  4278.     'Alma-Ata Time' => array(
  4279.         'offset' => 21600000,
  4280.         'longname' => 'Alma-Ata Time',
  4281.         'shortname' => 'ALMT',
  4282.         'hasdst' => true,
  4283.         'dstlongname' => 'Alma-Ata Summer Time',
  4284.         'dstshortname' => 'ALMST' ),
  4285.     'Sri Lanka Time' => array(
  4286.         'offset' => 21600000,
  4287.         'longname' => 'Sri Lanka Time',
  4288.         'shortname' => 'LKT',
  4289.         'hasdst' => false ),
  4290.     'Bangladesh Time' => array(
  4291.         'offset' => 21600000,
  4292.         'longname' => 'Bangladesh Time',
  4293.         'shortname' => 'BDT',
  4294.         'hasdst' => false ),
  4295.     'Novosibirsk Time' => array(
  4296.         'offset' => 21600000,
  4297.         'longname' => 'Novosibirsk Time',
  4298.         'shortname' => 'NOVT',
  4299.         'hasdst' => true,
  4300.         'dstlongname' => 'Novosibirsk Summer Time',
  4301.         'dstshortname' => 'NOVST' ),
  4302.     'Omsk Time' => array(
  4303.         'offset' => 21600000,
  4304.         'longname' => 'Omsk Time',
  4305.         'shortname' => 'OMST',
  4306.         'hasdst' => true,
  4307.         'dstlongname' => 'Omsk Summer Time',
  4308.         'dstshortname' => 'OMSST' ),
  4309.     'Bhutan Time' => array(
  4310.         'offset' => 21600000,
  4311.         'longname' => 'Bhutan Time',
  4312.         'shortname' => 'BTT',
  4313.         'hasdst' => false ),
  4314.     'GMT+06:00' => array(
  4315.         'offset' => 21600000,
  4316.         'longname' => 'GMT+06:00',
  4317.         'shortname' => 'GMT+06:00',
  4318.         'hasdst' => false ),
  4319.     'Indian Ocean Territory Time' => array(
  4320.         'offset' => 21600000,
  4321.         'longname' => 'Indian Ocean Territory Time',
  4322.         'shortname' => 'IOT',
  4323.         'hasdst' => false ),
  4324.     'Myanmar Time' => array(
  4325.         'offset' => 23400000,
  4326.         'longname' => 'Myanmar Time',
  4327.         'shortname' => 'MMT',
  4328.         'hasdst' => false ),
  4329.     'Cocos Islands Time' => array(
  4330.         'offset' => 23400000,
  4331.         'longname' => 'Cocos Islands Time',
  4332.         'shortname' => 'CCT',
  4333.         'hasdst' => false ),
  4334.     'Davis Time' => array(
  4335.         'offset' => 25200000,
  4336.         'longname' => 'Davis Time',
  4337.         'shortname' => 'DAVT',
  4338.         'hasdst' => false ),
  4339.     'Indochina Time' => array(
  4340.         'offset' => 25200000,
  4341.         'longname' => 'Indochina Time',
  4342.         'shortname' => 'ICT',
  4343.         'hasdst' => false ),
  4344.     'Hovd Time' => array(
  4345.         'offset' => 25200000,
  4346.         'longname' => 'Hovd Time',
  4347.         'shortname' => 'HOVT',
  4348.         'hasdst' => false ),
  4349.     'West Indonesia Time' => array(
  4350.         'offset' => 25200000,
  4351.         'longname' => 'West Indonesia Time',
  4352.         'shortname' => 'WIT',
  4353.         'hasdst' => false ),
  4354.     'Krasnoyarsk Time' => array(
  4355.         'offset' => 25200000,
  4356.         'longname' => 'Krasnoyarsk Time',
  4357.         'shortname' => 'KRAT',
  4358.         'hasdst' => true,
  4359.         'dstlongname' => 'Krasnoyarsk Summer Time',
  4360.         'dstshortname' => 'KRAST' ),
  4361.     'GMT+07:00' => array(
  4362.         'offset' => 25200000,
  4363.         'longname' => 'GMT+07:00',
  4364.         'shortname' => 'GMT+07:00',
  4365.         'hasdst' => false ),
  4366.     'Christmas Island Time' => array(
  4367.         'offset' => 25200000,
  4368.         'longname' => 'Christmas Island Time',
  4369.         'shortname' => 'CXT',
  4370.         'hasdst' => false ),
  4371.     'Western Standard Time (Australia)' => array(
  4372.         'offset' => 28800000,
  4373.         'longname' => 'Western Standard Time (Australia)',
  4374.         'shortname' => 'WST',
  4375.         'hasdst' => false ),
  4376.     'Brunei Time' => array(
  4377.         'offset' => 28800000,
  4378.         'longname' => 'Brunei Time',
  4379.         'shortname' => 'BNT',
  4380.         'hasdst' => false ),
  4381.     'China Standard Time' => array(
  4382.         'offset' => 28800000,
  4383.         'longname' => 'China Standard Time',
  4384.         'shortname' => 'CST',
  4385.         'hasdst' => false ),
  4386.     'Hong Kong Time' => array(
  4387.         'offset' => 28800000,
  4388.         'longname' => 'Hong Kong Time',
  4389.         'shortname' => 'HKT',
  4390.         'hasdst' => false ),
  4391.     'Irkutsk Time' => array(
  4392.         'offset' => 28800000,
  4393.         'longname' => 'Irkutsk Time',
  4394.         'shortname' => 'IRKT',
  4395.         'hasdst' => true,
  4396.         'dstlongname' => 'Irkutsk Summer Time',
  4397.         'dstshortname' => 'IRKST' ),
  4398.     'Malaysia Time' => array(
  4399.         'offset' => 28800000,
  4400.         'longname' => 'Malaysia Time',
  4401.         'shortname' => 'MYT',
  4402.         'hasdst' => false ),
  4403.     'Philippines Time' => array(
  4404.         'offset' => 28800000,
  4405.         'longname' => 'Philippines Time',
  4406.         'shortname' => 'PHT',
  4407.         'hasdst' => false ),
  4408.     'Singapore Time' => array(
  4409.         'offset' => 28800000,
  4410.         'longname' => 'Singapore Time',
  4411.         'shortname' => 'SGT',
  4412.         'hasdst' => false ),
  4413.     'Central Indonesia Time' => array(
  4414.         'offset' => 28800000,
  4415.         'longname' => 'Central Indonesia Time',
  4416.         'shortname' => 'CIT',
  4417.         'hasdst' => false ),
  4418.     'Ulaanbaatar Time' => array(
  4419.         'offset' => 28800000,
  4420.         'longname' => 'Ulaanbaatar Time',
  4421.         'shortname' => 'ULAT',
  4422.         'hasdst' => false ),
  4423.     'GMT+08:00' => array(
  4424.         'offset' => 28800000,
  4425.         'longname' => 'GMT+08:00',
  4426.         'shortname' => 'GMT+08:00',
  4427.         'hasdst' => false ),
  4428.     'Choibalsan Time' => array(
  4429.         'offset' => 32400000,
  4430.         'longname' => 'Choibalsan Time',
  4431.         'shortname' => 'CHOT',
  4432.         'hasdst' => false ),
  4433.     'East Timor Time' => array(
  4434.         'offset' => 32400000,
  4435.         'longname' => 'East Timor Time',
  4436.         'shortname' => 'TPT',
  4437.         'hasdst' => false ),
  4438.     'East Indonesia Time' => array(
  4439.         'offset' => 32400000,
  4440.         'longname' => 'East Indonesia Time',
  4441.         'shortname' => 'EIT',
  4442.         'hasdst' => false ),
  4443.     'Korea Standard Time' => array(
  4444.         'offset' => 32400000,
  4445.         'longname' => 'Korea Standard Time',
  4446.         'shortname' => 'KST',
  4447.         'hasdst' => false ),
  4448.     'Japan Standard Time' => array(
  4449.         'offset' => 32400000,
  4450.         'longname' => 'Japan Standard Time',
  4451.         'shortname' => 'JST',
  4452.         'hasdst' => false ),
  4453.     'Yakutsk Time' => array(
  4454.         'offset' => 32400000,
  4455.         'longname' => 'Yakutsk Time',
  4456.         'shortname' => 'YAKT',
  4457.         'hasdst' => true,
  4458.         'dstlongname' => 'Yaktsk Summer Time',
  4459.         'dstshortname' => 'YAKST' ),
  4460.     'GMT+09:00' => array(
  4461.         'offset' => 32400000,
  4462.         'longname' => 'GMT+09:00',
  4463.         'shortname' => 'GMT+09:00',
  4464.         'hasdst' => false ),
  4465.     'Palau Time' => array(
  4466.         'offset' => 32400000,
  4467.         'longname' => 'Palau Time',
  4468.         'shortname' => 'PWT',
  4469.         'hasdst' => false ),
  4470.     'Central Standard Time (Northern Territory)' => array(
  4471.         'offset' => 34200000,
  4472.         'longname' => 'Central Standard Time (Northern Territory)',
  4473.         'shortname' => 'CST',
  4474.         'hasdst' => false ),
  4475.     'Central Standard Time (South Australia)' => array(
  4476.         'offset' => 34200000,
  4477.         'longname' => 'Central Standard Time (South Australia)',
  4478.         'shortname' => 'CST',
  4479.         'hasdst' => true,
  4480.         'dstlongname' => 'Central Summer Time (South Australia)',
  4481.         'dstshortname' => 'CST' ),
  4482.     'Central Standard Time (South Australia/New South Wales)' => array(
  4483.         'offset' => 34200000,
  4484.         'longname' => 'Central Standard Time (South Australia/New South Wales)',
  4485.         'shortname' => 'CST',
  4486.         'hasdst' => true,
  4487.         'dstlongname' => 'Central Summer Time (South Australia/New South Wales)',
  4488.         'dstshortname' => 'CST' ),
  4489.     'Eastern Standard Time (New South Wales)' => array(
  4490.         'offset' => 36000000,
  4491.         'longname' => 'Eastern Standard Time (New South Wales)',
  4492.         'shortname' => 'EST',
  4493.         'hasdst' => true,
  4494.         'dstlongname' => 'Eastern Summer Time (New South Wales)',
  4495.         'dstshortname' => 'EST' ),
  4496.     'Dumont-d\'Urville Time' => array(
  4497.         'offset' => 36000000,
  4498.         'longname' => 'Dumont-d\'Urville Time',
  4499.         'shortname' => 'DDUT',
  4500.         'hasdst' => false ),
  4501.     'Sakhalin Time' => array(
  4502.         'offset' => 36000000,
  4503.         'longname' => 'Sakhalin Time',
  4504.         'shortname' => 'SAKT',
  4505.         'hasdst' => true,
  4506.         'dstlongname' => 'Sakhalin Summer Time',
  4507.         'dstshortname' => 'SAKST' ),
  4508.     'Vladivostok Time' => array(
  4509.         'offset' => 36000000,
  4510.         'longname' => 'Vladivostok Time',
  4511.         'shortname' => 'VLAT',
  4512.         'hasdst' => true,
  4513.         'dstlongname' => 'Vladivostok Summer Time',
  4514.         'dstshortname' => 'VLAST' ),
  4515.     'Eastern Standard Time (Queensland)' => array(
  4516.         'offset' => 36000000,
  4517.         'longname' => 'Eastern Standard Time (Queensland)',
  4518.         'shortname' => 'EST',
  4519.         'hasdst' => false ),
  4520.     'Eastern Standard Time (Tasmania)' => array(
  4521.         'offset' => 36000000,
  4522.         'longname' => 'Eastern Standard Time (Tasmania)',
  4523.         'shortname' => 'EST',
  4524.         'hasdst' => true,
  4525.         'dstlongname' => 'Eastern Summer Time (Tasmania)',
  4526.         'dstshortname' => 'EST' ),
  4527.     'Eastern Standard Time (Victoria)' => array(
  4528.         'offset' => 36000000,
  4529.         'longname' => 'Eastern Standard Time (Victoria)',
  4530.         'shortname' => 'EST',
  4531.         'hasdst' => true,
  4532.         'dstlongname' => 'Eastern Summer Time (Victoria)',
  4533.         'dstshortname' => 'EST' ),
  4534.     'GMT+10:00' => array(
  4535.         'offset' => 36000000,
  4536.         'longname' => 'GMT+10:00',
  4537.         'shortname' => 'GMT+10:00',
  4538.         'hasdst' => false ),
  4539.     'Chamorro Standard Time' => array(
  4540.         'offset' => 36000000,
  4541.         'longname' => 'Chamorro Standard Time',
  4542.         'shortname' => 'ChST',
  4543.         'hasdst' => false ),
  4544.     'Papua New Guinea Time' => array(
  4545.         'offset' => 36000000,
  4546.         'longname' => 'Papua New Guinea Time',
  4547.         'shortname' => 'PGT',
  4548.         'hasdst' => false ),
  4549.     'Truk Time' => array(
  4550.         'offset' => 36000000,
  4551.         'longname' => 'Truk Time',
  4552.         'shortname' => 'TRUT',
  4553.         'hasdst' => false ),
  4554.     'Yap Time' => array(
  4555.         'offset' => 36000000,
  4556.         'longname' => 'Yap Time',
  4557.         'shortname' => 'YAPT',
  4558.         'hasdst' => false ),
  4559.     'Load Howe Standard Time' => array(
  4560.         'offset' => 37800000,
  4561.         'longname' => 'Load Howe Standard Time',
  4562.         'shortname' => 'LHST',
  4563.         'hasdst' => true,
  4564.         'dstlongname' => 'Load Howe Summer Time',
  4565.         'dstshortname' => 'LHST' ),
  4566.     'Magadan Time' => array(
  4567.         'offset' => 39600000,
  4568.         'longname' => 'Magadan Time',
  4569.         'shortname' => 'MAGT',
  4570.         'hasdst' => true,
  4571.         'dstlongname' => 'Magadan Summer Time',
  4572.         'dstshortname' => 'MAGST' ),
  4573.     'GMT+11:00' => array(
  4574.         'offset' => 39600000,
  4575.         'longname' => 'GMT+11:00',
  4576.         'shortname' => 'GMT+11:00',
  4577.         'hasdst' => false ),
  4578.     'Vanuatu Time' => array(
  4579.         'offset' => 39600000,
  4580.         'longname' => 'Vanuatu Time',
  4581.         'shortname' => 'VUT',
  4582.         'hasdst' => false ),
  4583.     'Solomon Is. Time' => array(
  4584.         'offset' => 39600000,
  4585.         'longname' => 'Solomon Is. Time',
  4586.         'shortname' => 'SBT',
  4587.         'hasdst' => false ),
  4588.     'Kosrae Time' => array(
  4589.         'offset' => 39600000,
  4590.         'longname' => 'Kosrae Time',
  4591.         'shortname' => 'KOST',
  4592.         'hasdst' => false ),
  4593.     'New Caledonia Time' => array(
  4594.         'offset' => 39600000,
  4595.         'longname' => 'New Caledonia Time',
  4596.         'shortname' => 'NCT',
  4597.         'hasdst' => false ),
  4598.     'Ponape Time' => array(
  4599.         'offset' => 39600000,
  4600.         'longname' => 'Ponape Time',
  4601.         'shortname' => 'PONT',
  4602.         'hasdst' => false ),
  4603.     'Norfolk Time' => array(
  4604.         'offset' => 41400000,
  4605.         'longname' => 'Norfolk Time',
  4606.         'shortname' => 'NFT',
  4607.         'hasdst' => false ),
  4608.     'New Zealand Standard Time' => array(
  4609.         'offset' => 43200000,
  4610.         'longname' => 'New Zealand Standard Time',
  4611.         'shortname' => 'NZST',
  4612.         'hasdst' => true,
  4613.         'dstlongname' => 'New Zealand Daylight Time',
  4614.         'dstshortname' => 'NZDT' ),
  4615.     'Anadyr Time' => array(
  4616.         'offset' => 43200000,
  4617.         'longname' => 'Anadyr Time',
  4618.         'shortname' => 'ANAT',
  4619.         'hasdst' => true,
  4620.         'dstlongname' => 'Anadyr Summer Time',
  4621.         'dstshortname' => 'ANAST' ),
  4622.     'Petropavlovsk-Kamchatski Time' => array(
  4623.         'offset' => 43200000,
  4624.         'longname' => 'Petropavlovsk-Kamchatski Time',
  4625.         'shortname' => 'PETT',
  4626.         'hasdst' => true,
  4627.         'dstlongname' => 'Petropavlovsk-Kamchatski Summer Time',
  4628.         'dstshortname' => 'PETST' ),
  4629.     'GMT+12:00' => array(
  4630.         'offset' => 43200000,
  4631.         'longname' => 'GMT+12:00',
  4632.         'shortname' => 'GMT+12:00',
  4633.         'hasdst' => false ),
  4634.     'Marshall Islands Time' => array(
  4635.         'offset' => 43200000,
  4636.         'longname' => 'Marshall Islands Time',
  4637.         'shortname' => 'MHT',
  4638.         'hasdst' => false ),
  4639.     'Fiji Time' => array(
  4640.         'offset' => 43200000,
  4641.         'longname' => 'Fiji Time',
  4642.         'shortname' => 'FJT',
  4643.         'hasdst' => false ),
  4644.     'Tuvalu Time' => array(
  4645.         'offset' => 43200000,
  4646.         'longname' => 'Tuvalu Time',
  4647.         'shortname' => 'TVT',
  4648.         'hasdst' => false ),
  4649.     'Nauru Time' => array(
  4650.         'offset' => 43200000,
  4651.         'longname' => 'Nauru Time',
  4652.         'shortname' => 'NRT',
  4653.         'hasdst' => false ),
  4654.     'Gilbert Is. Time' => array(
  4655.         'offset' => 43200000,
  4656.         'longname' => 'Gilbert Is. Time',
  4657.         'shortname' => 'GILT',
  4658.         'hasdst' => false ),
  4659.     'Wake Time' => array(
  4660.         'offset' => 43200000,
  4661.         'longname' => 'Wake Time',
  4662.         'shortname' => 'WAKT',
  4663.         'hasdst' => false ),
  4664.     'Wallis & Futuna Time' => array(
  4665.         'offset' => 43200000,
  4666.         'longname' => 'Wallis & Futuna Time',
  4667.         'shortname' => 'WFT',
  4668.         'hasdst' => false ),
  4669.     'Chatham Standard Time' => array(
  4670.         'offset' => 45900000,
  4671.         'longname' => 'Chatham Standard Time',
  4672.         'shortname' => 'CHAST',
  4673.         'hasdst' => true,
  4674.         'dstlongname' => 'Chatham Daylight Time',
  4675.         'dstshortname' => 'CHADT' ),
  4676.     'GMT+13:00' => array(
  4677.         'offset' => 46800000,
  4678.         'longname' => 'GMT+13:00',
  4679.         'shortname' => 'GMT+13:00',
  4680.         'hasdst' => false ),
  4681.     'Phoenix Is. Time' => array(
  4682.         'offset' => 46800000,
  4683.         'longname' => 'Phoenix Is. Time',
  4684.         'shortname' => 'PHOT',
  4685.         'hasdst' => false ),
  4686.     'Tonga Time' => array(
  4687.         'offset' => 46800000,
  4688.         'longname' => 'Tonga Time',
  4689.         'shortname' => 'TOT',
  4690.         'hasdst' => false ),
  4691.     'GMT+14:00' => array(
  4692.         'offset' => 50400000,
  4693.         'longname' => 'GMT+14:00',
  4694.         'shortname' => 'GMT+14:00',
  4695.         'hasdst' => false ),
  4696.     'Line Is. Time' => array(
  4697.         'offset' => 50400000,
  4698.         'longname' => 'Line Is. Time',
  4699.         'shortname' => 'LINT',
  4700.         'hasdst' => false ),
  4701. );
  4702.  
  4703. /**
  4704.  * Initialize default timezone
  4705.  *
  4706.  * First try _DATE_TIMEZONE_DEFAULT global, then PHP_TZ environment var,
  4707.  * then TZ environment var
  4708.  */
  4709. if(isset($GLOBALS['_DATE_TIMEZONE_DEFAULT'])
  4710.    && Date_TimeZone::isValidID($GLOBALS['_DATE_TIMEZONE_DEFAULT']))
  4711. {
  4712.     Date_TimeZone::setDefault($GLOBALS['_DATE_TIMEZONE_DEFAULT']);
  4713. } elseif (getenv('PHP_TZ') && Date_TimeZone::isValidID(getenv('PHP_TZ'))) {
  4714.     Date_TimeZone::setDefault(getenv('PHP_TZ'));
  4715. } elseif (getenv('TZ') && Date_TimeZone::isValidID(getenv('TZ'))) {
  4716.     Date_TimeZone::setDefault(getenv('TZ'));
  4717. } elseif (Date_TimeZone::isValidID(date('T'))) {
  4718.     Date_TimeZone::setDefault(date('T'));
  4719. } else {
  4720.     Date_TimeZone::setDefault('UTC');
  4721. }
  4722.  
  4723. /*
  4724.  * Local variables:
  4725.  * mode: php
  4726.  * tab-width: 4
  4727.  * c-basic-offset: 4
  4728.  * c-hanging-comment-ender-p: nil
  4729.  * End:
  4730.  */
  4731. ?>