This leads to rather unfortunate error messages like this one:
[bill@fraser src]$ date +'%s' --date='2038/01/19 03:14:07'
[bill@fraser src]$ date +'%s' --date='2038/01/19 03:14:08'
date: invalid date `2038/01/19 03:14:08'
How is '2038/01/19 03:14:08' an invalid date?
time_t is only 32 bits.
Still a *very* unfortunate error message, don't you think?
Right... But this needs fixing in glibc's mktime() function [in the long run].
Probably won't be possible before we move time_t to 64 bit.
The time_t type is only meant for system events. I.e., it represents
events which happened or will happen during the runtime of the system.
Most 32 bit platforms for the limitation. Maybe, when the critical
year 2038 nears and there are people stupid enough to still use these
legacy system, somebody will rewrite the time_t handling. But this
isn't going to happen here and now.