• SHITPOSTING_ACCOUNT@feddit.de
    link
    fedilink
    arrow-up
    3
    ·
    10 months 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.

    • someguy3@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 months 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
        2
        ·
        10 months 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
          ·
          10 months 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.