Dates are really hard (I mean data type ones, but ymmv). Numerous libraries claim to be “standard” or to cover almost all date/time functions, but rarely do so. Some libraries allow a developer to see a date as a primitive value/breakdown, which may lead to hard to debug issues (unix + 86400, etc). Leap years, leap seconds, DST, “leapy” UTC/GMT+ days, accidental month overflow, shift date vs duration mismatch, etc. If you’re a developer and never scratched this topic, be aware.