Skip to content

Invalid timestamps for HOURLY interval RRULEs when DST change occurs #63

@leaanthony-sc

Description

@leaanthony-sc

Describe the bug
teambition/rrule-go version: v1.8.2

We ran across an issue where RRULEs that use HOURLY intervals return incorrect timestamps when the timestamp corresponds to a DST switch.

Consider the following scenario:

  • DST in Australia/Sydney starts at 2022-10-02 02:00 and the clocks go forward 1 hour. The timezone changes from AEST (+1000) to AEDT (+1100).
  • An hourly schedule starting at 2022-10-02 01:00 with a count of 3, should return the following values:
    • 2022-10-02 01:00:00 +1000 AEST / 2022-10-01 15:00:00 +0000 UTC
    • 2022-10-02 03:00:00 +1100 AEDT / 2022-10-01 16:00:00 +0000 UTC
    • 2022-10-02 04:00:00 +1100 AEDT / 2022-10-01 17:00:00 +0000 UTC
  • What we get is:
    • 2022-10-02 01:00:00 +1000 AEST / 2022-10-01 15:00:00 +0000 UTC
    • 2022-10-02 03:00:00 +1100 AEDT / 2022-10-01 16:00:00 +0000 UTC
    • 2022-10-02 03:00:00 +1100 AEDT / 2022-10-01 16:00:00 +0000 UTC

The same bug can be seen when DST ends on April 2nd 2023.

To Reproduce
We have raised a PR to show the bug.

Expected behavior
Should return correct hour values.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions