• Sjmarf@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    19
    ·
    1 day ago

    Today I spent multiple hours trying to debug a timezone issue in a codebase. The timezone I was testing with was Etc/GMT+4, which I had assumed was four hours ahead of GMT. Turns out, it’s actually 4 hours behind GMT 🤦‍♂️

    • Lv_InSaNe_vL@lemmy.world
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      24 hours ago

      GMT+4 would add 4 hours to Greenwich Mean Time though? That’s GET (Georgia Standard Time), so 10am (1000) GMT would be 2pm (1400) GET.

      GMT-4 would be EDT (Eastern Daylight Time), so that 10am (1000) GMT would be 6am (0600) EDT. Also, Georgia the state is in that time zone funny enough haha

      (For the most part. Timezones are really really complicated and you should probably just look up the offset for the specific city/region you want Everytime and use some other package for time stuff lol)

      • Sjmarf@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        6
        arrow-down
        1
        ·
        edit-2
        23 hours ago

        Yeah, you would’ve thought it would work that way. Regrettably, the standard timezone code of Etc/GMT+4 is actually GMT-4. Wikipedia

        • merc@sh.itjust.works
          link
          fedilink
          arrow-up
          1
          ·
          15 hours ago

          The special area of “Etc” is used for some administrative zones, particularly for “Etc/UTC” which represents Coordinated Universal Time. In order to conform with the POSIX style, those zone names beginning with “Etc/GMT” have their sign reversed from the standard ISO 8601 convention. In the “Etc” area, zones west of GMT have a positive sign and those east have a negative sign in their name (e.g “Etc/GMT-14” is 14 hours ahead of GMT).

          https://en.wikipedia.org/wiki/Tz_database#Area

        • Lv_InSaNe_vL@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          23 hours ago

          According to NIST, Eastern Time is UTC-4. And currently it is 5:04pm EDT, and in London (a city in GMT/UTC+0) it is 10:04pm. Which is 5 hours ahead (because America is dumb and has daylight savings).

          Which is also backed up by your article. Americas/Indianapolis is the one I normally use since I’m in Indiana.

          • Deebster@programming.dev
            link
            fedilink
            English
            arrow-up
            2
            ·
            14 hours ago

            Then the UK’s equally dumb: it was 10:04 pm BST (GMT+1) cos daylight savings is a thing in most of Europe too. At least it’s synchronised across Europe[1] so you just need to remember that most[2] of North America changes a few weeks earlier.

            Also, the UK says GMT/BST which is nice and clear - calling both EST and EDT “Eastern Time” makes even more of a mess!

            And yes, I’ve just rediscovered you can use footnotes, why do you ask?


            1. The EU is planning on killing daylight savings but I have no idea if the UK will do the sensible thing and go along when/if this happens ↩︎

            2. thanks for making it more confusing, Mexico ↩︎