# This file is auto-generated by the Perl DateTime Suite time zone
# code generator (0.08) This code generator comes with the
# DateTime::TimeZone module distribution in the tools/ directory
#
# Generated from /tmp/CIqDbkmfat/australasia. Olson data version 2016j
#
# Do not edit this file directly.
#
package DateTime::TimeZone::Pacific::Tongatapu;
use strict;
use warnings;
use namespace::autoclean;
our $VERSION = '2.09';
use Class::Singleton 1.03;
use DateTime::TimeZone;
use DateTime::TimeZone::OlsonDB;
@DateTime::TimeZone::Pacific::Tongatapu::ISA = ( 'Class::Singleton', 'DateTime::TimeZone' );
my $spans =
[
[
DateTime::TimeZone::NEG_INFINITY, # utc_start
59958186040, # utc_end 1900-12-31 11:40:40 (Mon)
DateTime::TimeZone::NEG_INFINITY, # local_start
59958230400, # local_end 1901-01-01 00:00:00 (Tue)
44360,
0,
'LMT',
],
[
59958186040, # utc_start 1900-12-31 11:40:40 (Mon)
61220490000, # utc_end 1940-12-31 11:40:00 (Tue)
59958230440, # local_start 1901-01-01 00:00:40 (Tue)
61220534400, # local_end 1941-01-01 00:00:00 (Wed)
44400,
0,
'+1220',
],
[
61220490000, # utc_start 1940-12-31 11:40:00 (Tue)
63050785200, # utc_end 1998-12-31 11:00:00 (Thu)
61220536800, # local_start 1941-01-01 00:40:00 (Wed)
63050832000, # local_end 1999-01-01 00:00:00 (Fri)
46800,
0,
'+13',
],
[
63050785200, # utc_start 1998-12-31 11:00:00 (Thu)
63074898000, # utc_end 1999-10-06 13:00:00 (Wed)
63050832000, # local_start 1999-01-01 00:00:00 (Fri)
63074944800, # local_end 1999-10-07 02:00:00 (Thu)
46800,
0,
'+13',
],
[
63074898000, # utc_start 1999-10-06 13:00:00 (Wed)
63089067600, # utc_end 2000-03-18 13:00:00 (Sat)
63074948400, # local_start 1999-10-07 03:00:00 (Thu)
63089118000, # local_end 2000-03-19 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63089067600, # utc_start 2000-03-18 13:00:00 (Sat)
63109026000, # utc_end 2000-11-04 13:00:00 (Sat)
63089114400, # local_start 2000-03-19 02:00:00 (Sun)
63109072800, # local_end 2000-11-05 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63109026000, # utc_start 2000-11-04 13:00:00 (Sat)
63116280000, # utc_end 2001-01-27 12:00:00 (Sat)
63109076400, # local_start 2000-11-05 03:00:00 (Sun)
63116330400, # local_end 2001-01-28 02:00:00 (Sun)
50400,
1,
'+14',
],
[
63116280000, # utc_start 2001-01-27 12:00:00 (Sat)
63140475600, # utc_end 2001-11-03 13:00:00 (Sat)
63116326800, # local_start 2001-01-28 01:00:00 (Sun)
63140522400, # local_end 2001-11-04 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63140475600, # utc_start 2001-11-03 13:00:00 (Sat)
63147729600, # utc_end 2002-01-26 12:00:00 (Sat)
63140526000, # local_start 2001-11-04 03:00:00 (Sun)
63147780000, # local_end 2002-01-27 02:00:00 (Sun)
50400,
1,
'+14',
],
[
63147729600, # utc_start 2002-01-26 12:00:00 (Sat)
63614034000, # utc_end 2016-11-05 13:00:00 (Sat)
63147776400, # local_start 2002-01-27 01:00:00 (Sun)
63614080800, # local_end 2016-11-06 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63614034000, # utc_start 2016-11-05 13:00:00 (Sat)
63620082000, # utc_end 2017-01-14 13:00:00 (Sat)
63614084400, # local_start 2016-11-06 03:00:00 (Sun)
63620132400, # local_end 2017-01-15 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63620082000, # utc_start 2017-01-14 13:00:00 (Sat)
63645483600, # utc_end 2017-11-04 13:00:00 (Sat)
63620128800, # local_start 2017-01-15 02:00:00 (Sun)
63645530400, # local_end 2017-11-05 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63645483600, # utc_start 2017-11-04 13:00:00 (Sat)
63652136400, # utc_end 2018-01-20 13:00:00 (Sat)
63645534000, # local_start 2017-11-05 03:00:00 (Sun)
63652186800, # local_end 2018-01-21 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63652136400, # utc_start 2018-01-20 13:00:00 (Sat)
63676933200, # utc_end 2018-11-03 13:00:00 (Sat)
63652183200, # local_start 2018-01-21 02:00:00 (Sun)
63676980000, # local_end 2018-11-04 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63676933200, # utc_start 2018-11-03 13:00:00 (Sat)
63683586000, # utc_end 2019-01-19 13:00:00 (Sat)
63676983600, # local_start 2018-11-04 03:00:00 (Sun)
63683636400, # local_end 2019-01-20 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63683586000, # utc_start 2019-01-19 13:00:00 (Sat)
63708382800, # utc_end 2019-11-02 13:00:00 (Sat)
63683632800, # local_start 2019-01-20 02:00:00 (Sun)
63708429600, # local_end 2019-11-03 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63708382800, # utc_start 2019-11-02 13:00:00 (Sat)
63715035600, # utc_end 2020-01-18 13:00:00 (Sat)
63708433200, # local_start 2019-11-03 03:00:00 (Sun)
63715086000, # local_end 2020-01-19 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63715035600, # utc_start 2020-01-18 13:00:00 (Sat)
63739832400, # utc_end 2020-10-31 13:00:00 (Sat)
63715082400, # local_start 2020-01-19 02:00:00 (Sun)
63739879200, # local_end 2020-11-01 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63739832400, # utc_start 2020-10-31 13:00:00 (Sat)
63746485200, # utc_end 2021-01-16 13:00:00 (Sat)
63739882800, # local_start 2020-11-01 03:00:00 (Sun)
63746535600, # local_end 2021-01-17 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63746485200, # utc_start 2021-01-16 13:00:00 (Sat)
63771886800, # utc_end 2021-11-06 13:00:00 (Sat)
63746532000, # local_start 2021-01-17 02:00:00 (Sun)
63771933600, # local_end 2021-11-07 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63771886800, # utc_start 2021-11-06 13:00:00 (Sat)
63777934800, # utc_end 2022-01-15 13:00:00 (Sat)
63771937200, # local_start 2021-11-07 03:00:00 (Sun)
63777985200, # local_end 2022-01-16 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63777934800, # utc_start 2022-01-15 13:00:00 (Sat)
63803336400, # utc_end 2022-11-05 13:00:00 (Sat)
63777981600, # local_start 2022-01-16 02:00:00 (Sun)
63803383200, # local_end 2022-11-06 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63803336400, # utc_start 2022-11-05 13:00:00 (Sat)
63809384400, # utc_end 2023-01-14 13:00:00 (Sat)
63803386800, # local_start 2022-11-06 03:00:00 (Sun)
63809434800, # local_end 2023-01-15 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63809384400, # utc_start 2023-01-14 13:00:00 (Sat)
63834786000, # utc_end 2023-11-04 13:00:00 (Sat)
63809431200, # local_start 2023-01-15 02:00:00 (Sun)
63834832800, # local_end 2023-11-05 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63834786000, # utc_start 2023-11-04 13:00:00 (Sat)
63841438800, # utc_end 2024-01-20 13:00:00 (Sat)
63834836400, # local_start 2023-11-05 03:00:00 (Sun)
63841489200, # local_end 2024-01-21 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63841438800, # utc_start 2024-01-20 13:00:00 (Sat)
63866235600, # utc_end 2024-11-02 13:00:00 (Sat)
63841485600, # local_start 2024-01-21 02:00:00 (Sun)
63866282400, # local_end 2024-11-03 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63866235600, # utc_start 2024-11-02 13:00:00 (Sat)
63872888400, # utc_end 2025-01-18 13:00:00 (Sat)
63866286000, # local_start 2024-11-03 03:00:00 (Sun)
63872938800, # local_end 2025-01-19 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63872888400, # utc_start 2025-01-18 13:00:00 (Sat)
63897685200, # utc_end 2025-11-01 13:00:00 (Sat)
63872935200, # local_start 2025-01-19 02:00:00 (Sun)
63897732000, # local_end 2025-11-02 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63897685200, # utc_start 2025-11-01 13:00:00 (Sat)
63904338000, # utc_end 2026-01-17 13:00:00 (Sat)
63897735600, # local_start 2025-11-02 03:00:00 (Sun)
63904388400, # local_end 2026-01-18 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63904338000, # utc_start 2026-01-17 13:00:00 (Sat)
63929134800, # utc_end 2026-10-31 13:00:00 (Sat)
63904384800, # local_start 2026-01-18 02:00:00 (Sun)
63929181600, # local_end 2026-11-01 02:00:00 (Sun)
46800,
0,
'+13',
],
[
63929134800, # utc_start 2026-10-31 13:00:00 (Sat)
63935787600, # utc_end 2027-01-16 13:00:00 (Sat)
63929185200, # local_start 2026-11-01 03:00:00 (Sun)
63935838000, # local_end 2027-01-17 03:00:00 (Sun)
50400,
1,
'+14',
],
[
63935787600, # utc_start 2027-01-16 13:00:00 (Sat)
63961189200, # utc_end 2027-11-06 13:00:00 (Sat)
63935834400, # local_start 2027-01-17 02:00:00 (Sun)
63961236000, # local_end 2027-11-07 02:00:00 (Sun)
46800,
0,
'+13',
],
];
sub olson_version {'2016j'}
sub has_dst_changes {15}
sub _max_year {2026}
sub _new_instance {
return shift->_init( @_, spans => $spans );
}
sub _last_offset { 46800 }
my $last_observance = bless( {
'format' => '+13/+14',
'gmtoff' => '13:00',
'local_start_datetime' => bless( {
'formatter' => undef,
'local_rd_days' => 729755,
'local_rd_secs' => 0,
'offset_modifier' => 0,
'rd_nanosecs' => 0,
'tz' => bless( {
'name' => 'floating',
'offset' => 0
}, 'DateTime::TimeZone::Floating' ),
'utc_rd_days' => 729755,
'utc_rd_secs' => 0,
'utc_year' => 2000
}, 'DateTime' ),
'offset_from_std' => 0,
'offset_from_utc' => 46800,
'until' => [],
'utc_start_datetime' => bless( {
'formatter' => undef,
'local_rd_days' => 729754,
'local_rd_secs' => 39600,
'offset_modifier' => 0,
'rd_nanosecs' => 0,
'tz' => bless( {
'name' => 'floating',
'offset' => 0
}, 'DateTime::TimeZone::Floating' ),
'utc_rd_days' => 729754,
'utc_rd_secs' => 39600,
'utc_year' => 1999
}, 'DateTime' )
}, 'DateTime::TimeZone::OlsonDB::Observance' )
;
sub _last_observance { $last_observance }
my $rules = [
bless( {
'at' => '2:00',
'from' => '2016',
'in' => 'Nov',
'letter' => 'S',
'name' => 'Tonga',
'offset_from_std' => 3600,
'on' => 'Sun>=1',
'save' => '1:00',
'to' => 'max'
}, 'DateTime::TimeZone::OlsonDB::Rule' ),
bless( {
'at' => '3:00',
'from' => '2017',
'in' => 'Jan',
'letter' => '',
'name' => 'Tonga',
'offset_from_std' => 0,
'on' => 'Sun>=15',
'save' => '0',
'to' => 'max'
}, 'DateTime::TimeZone::OlsonDB::Rule' )
]
;
sub _rules { $rules }
1;