I have never heard of such a system, but it would be rather trivial to write a class where such a structured data type exists:
struct bigTime{
signed long int millenium;
int decade;
signed long int seconds;
}time;
You can store millions before / after an arbitrary point (even for the simplicity of 1970), for long-range, decades for the middle range, and then use seconds and milliseconds as short-term ones.
You can create a class in which adding +/- $ X seconds, minutes, hours, days, weeks, months, years, decades, centuries, millennia would be simple.
Say you wanted to go 156 years back. that -15 decades and -189 341 556 seconds.
Or 3205 years and 2 weeks and a day back. That -3 millenia, -20 decades, -159 080 630 seconds.
Or even 67,000,012 years (from jonathan offtopic joke). That -67000 millenia, -1 decade -63 113 851.9 seconds.
All this from today, but will be from any arbitrary point that you have chosen.
, , 4,2 , , . ( , , )