• SHITPOSTING_ACCOUNT@feddit.de
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      The most common date format used internally is “seconds since January 1st, 1970”.

      In early 2038, the number of seconds will reach 2^31 which is the biggest number that fits in a certain (also very common) data type. Numbers bigger than that will be interpreted as negative, so instead of January 2038 it will be in December 1901 or so.

      • BarqsHasBite@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Huh interesting. Why 2^31? I thought it was done in things like 2^32. We could have pushed this to 2106.

        • SHITPOSTING_ACCOUNT@feddit.de
          link
          fedilink
          arrow-up
          6
          ·
          1 year ago

          Signed integers. The number indeed goes to 2^32 but the second half is reserved for negative numbers.

          With 8 bit numbers for simplicity:

          0 means 0.
          127 means 127 (last number before 2^(7)).
          128 means -128.
          255 means -1.

          • 257m@lemmy.ml
            link
            fedilink
            arrow-up
            0
            arrow-down
            1
            ·
            1 year ago

            Why not just use unsigned int rather than signed int? We rarely have to store times before 1970 in computers and when we do we can just use a different format.

      • Hazdaz@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        so instead of January 2038 it will be in December 1901…

        Maybe this is just a big elaborate time travel experiment 68 years in the making?