Also, I may have been wrong about XFS on Linux at least; though the data structures are not as easy to follow as for ext4, they seem to be using struct timespec64 for all times, which has both separate fields for seconds and nanoseconds as well as a 64-bit-wide seconds field [2], covering a range of 584 billion years.
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...
[2]: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux...
2^53 + 1 milliseconds = 9007199254740993 milliseconds = 104249991 days 8 hours 59 minutes 0.993 seconds. Since the zero point is midnight 1970-01-01, we reach the first non-representable millisecond at 287396-10-12T8:59:00.993 (be careful to use the Gregorian leap rule if you want to calculate this manually).
If you ask ChatGPT it’s:
= 285,616 years after 1970
= Year 285,616 >>> 2**53/(1000*3600*24*365)+1970
287586.41472415626
There's a lot of milliseconds.