• Ephera
    link
    fedilink
    English
    177 hours ago

    Well, I looked at a Year 10000 problem less than 2 hours ago. We’re parsing logs to extract the timestamp and for that, we’re using a regex which starts with:

    \d{4}-\d{2}-\d{2}
    

    So, we assume there to be 4 digits for the year, always. Can’t use it, if you live in the year 10000 and beyond, nor in the year 999 and before.

    • @Frozengyro
      link
      106 hours ago

      Just start over at year 0000 AT (after ten thousand)

      • Ephera
        link
        fedilink
        English
        36 hours ago

        Do you think so? Surely, it’s able to handle dates before the year 999 correctly, so I’d also expect it to handle years beyond 10000. The \d{4} is just our bodged assumption, because well, I have actually never seen a log line with a year that wasn’t 4 digits…

        • @[email protected]
          link
          fedilink
          56 hours ago

          Kinda?

          Each date and time value has a fixed number of digits that must be padded with leading zeros.

          To represent years before 0000 or after 9999, the standard also permits the expansion of the year representation but only by prior agreement between the sender and the receiver.[21] An expanded year representation [±YYYYY] must have an agreed-upon number of extra year digits beyond the four-digit minimum, and it must be prefixed with a + or − sign[22] instead of the more common AD/BC (or CE/BCE) notation; by convention 1 BC is labelled +0000, 2 BC is labeled −0001, and so on.[23]

          • Ephera
            link
            fedilink
            English
            23 hours ago

            Oh wow, I really expected the standard to just say that however many digits you need are fine, because you know, maths. But I guess, this simplifies handling all kinds of edge cases in the roughly 7975 years we’ve still got.

        • @cmhe
          link
          15 hours ago

          deleted by creator