Ruby Till the End of Time...
or, more precisely, Monday, January 18 22:14:07 2038 Eastern Standard Time.
But give the very next second a try...
```
puts Time.local(2038,1,18,22,14,8)
```
Yikes!
That's the limit when you start at the Epoch and count the seconds using 31 bits.
It surprised me, as this was something I bumped my head against on UNIX so long ago (Frightfully, I'll have seen all of those 31 bits of time! _knock on wood_.)
Not too big a surprise though, since it is all C under the covers, as Eero Saynatkari reminded me.
I had wondered if I was working with an out-of-date (no irony intended) version of the Time class, but it's clear it's a real issue.
Maybe there's a well-used ruby mechanism to get around this, or maybe it'd be a useful exercise to write one.
Or perhaps I should just start printing T-shirts with "The next world starts at `1/18/38 22:14:08 EST`" on the front?
Mike Schneider put it well: "Y2K was amateur's day's. The epoch rollover day is coming."