Ideally, a file system implementation supports the entire date range of a file 
system and does not roll over at the end of the date range but just writes the 
highest possible date.

I just tested: Thomas Schmitt's xorrisofs (iso9660 only, not UDF) is not 
affected by Y2038. It uses the entire ISO9660 date range until the end of 2155. 
And dates after 2155 do not roll over to 1900, which is good. This is a 
future-proof design. So big applause to him! 

Commands to reproduce:

~~~~
mkdir iso-test
year=2000
while [ $year -le 2200 ]; do touch -m -d iso-test/$year-01-01 $year; 
year=$(($year+1)); done
xorrisofs -o iso-test.iso iso-test
isoinfo -l -i iso-test.iso
~~~~

Excerpt of output:

~~~~
----------   0    0    0               0 Dec 31 2150 [     33 00]  2151.;1 
----------   0    0    0               0 Dec 31 2151 [     33 00]  2152.;1 
----------   0    0    0               0 Dec 31 2152 [     33 00]  2153.;1 
----------   0    0    0               0 Dec 31 2153 [     33 00]  2154.;1 
----------   0    0    0               0 Dec 31 2154 [     33 00]  2155.;1 
----------   0    0    0               0 Dec 31 2155 [     33 00]  2156.;1 
----------   0    0    0               0 Dec 31 2155 [     33 00]  2157.;1 
----------   0    0    0               0 Dec 31 2155 [     33 00]  2158.;1 
----------   0    0    0               0 Dec 31 2155 [     33 00]  2159.;1 
----------   0    0    0               0 Dec 31 2155 [     33 00]  2160.;1 
~~~~

(Indicated date is December 31 instead of January 1 due to time zones. This is 
normal.)

Extended attributes on iso9660 support up to year 9999 and 0.01 second time 
granularity, but that is not urgent for now. Source: 
https://www.ecma-international.org/wp-content/uploads/ECMA-119_4th_edition_june_2019.pdf

Reply via email to