Skip to content

Possible edge case around last rule applicable for a zone lines last year #137

@ciju

Description

@ciju

Noticed the edge case for Pacific/Apia timezone. This timezone has a shift in offset of about a day in dec 2011. There are also DST rules applicable for the same year. Following are the relevant zone lines.

			 -11:00	WS	-11/-10	2011 Dec 29 24:00
			 13:00	WS	+13/+14

Current implementation ignores the offset change on dec 29th. E.g. The periods generated are:

%{
  until: %{
    utc: "2011-09-24T14:00:00Z",
    standard: "2011-09-24T03:00:00Z",
    wall: "2011-09-24T03:00:00Z"
  },
  zone_abbr: "SST",
  from: %{
    utc: "2011-04-02T14:00:00Z",
    standard: "2011-04-02T03:00:00Z",
    wall: "2011-04-02T03:00:00Z"
  },
  std_off: 0,
  utc_off: -39600
}
%{
  until: %{
    utc: "2012-03-31T14:00:00Z",
    standard: "2012-04-01T03:00:00Z",
    wall: "2012-04-01T04:00:00Z"
  },
  zone_abbr: "WSDT",
  from: %{
    utc: "2011-09-24T14:00:00Z",
    standard: "2011-09-25T03:00:00Z",
    wall: "2011-09-25T04:00:00Z"
  },
  std_off: 3600,
  utc_off: 46800
}

I think the periods should be.

%{
  until: %{
    utc: "2011-09-24T14:00:00Z",
    standard: "2011-09-24T03:00:00Z",
    wall: "2011-09-24T03:00:00Z"
  },
  zone_abbr: "SST",
  from: %{
    utc: "2011-04-02T14:00:00Z",
    standard: "2011-04-02T03:00:00Z",
    wall: "2011-04-02T03:00:00Z"
  },
  std_off: 0,
  utc_off: -39600
}
%{
  until: %{
    utc: "2011-12-30T11:00:00Z",
    standard: "2011-12-30T00:00:00Z",
    wall: "2011-12-30T01:00:00Z"
  },
  zone_abbr: "SST",
  from: %{
    utc: "2011-09-24T14:00:00Z",
    standard: "2011-09-24T03:00:00Z",
    wall: "2011-09-24T03:00:00Z"
  },
  std_off: 3600,
  utc_off: -39600
}
%{
  until: %{
    utc: "2012-03-31T14:00:00Z",
    standard: "2012-04-01T03:00:00Z",
    wall: "2012-04-01T04:00:00Z"
  },
  zone_abbr: "WSDT",
  from: %{
    utc: "2011-12-30T11:00:00Z",
    standard: "2011-12-31T00:00:00Z",
    wall: "2011-12-31T01:00:00Z"
  },
  std_off: 3600,
  utc_off: 46800
}

Link to the zone rules for Pacific/Apia

Haven't checked if this issue applies to any other zones.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions