Ruby 的 Time 类和 DateTime 类的区别
Time 是 Ruby 对 POSIX 的原始数据类型 time_t
的封装,换句话说,每一个 Time 对象都是表示距离 UNIX 纪元(即1970-01-01
00:00:00
UTC)的秒数。它可以用一个正的或者负的整数来表示,并且是有界限的:
1 | Time.at(0x7FFF_FFFF) # => 2038-01-19 11:14:07 +0800 |
在 Ruby 1.8.7 中超出此边界的值会产生一个错误。(1.9.2 貌似可以处理更大一些的值)
相比 Time 类, DateTime 就没有边界的限制。而 Rails 更是依据 SQL标准中的 DATETIME 类型扩展了 DateTime ,它可以表
示任何一个日期。所以如果是亚里士多德在他的那个年代在网上发表一个帖子,用 DateTime 类的实例是可以记录他的这个帖子的发表
时间的。