Ruby 日期处理全解析
1. 日期解析
在 Ruby 中,默认创建的 Date 对象是相对于意大利日历的,该日历在 1582 年切换到了公历。对于美国和英联邦用户,Ruby 提供了常量 Date::ENGLAND ,它对应于英格兰及其殖民地采用公历的日期。 DateTime 的构造函数和工厂方法可以接受 Date::ENGLAND 或 Date::ITALY 作为额外参数,用于表示该国日历改革的开始时间,该参数也可以是任何旧的儒略日,这样就能处理来自任何国家的旧日期。
# In Italy, 4 Oct 1582 was immediately followed by 15 Oct 1582.
Date.new(1582, 10, 4).to_s
# => "1582-10-04"
Date.new(1582, 10, 5).to_s
# ArgumentError: invalid date
Date.new(1582, 10, 4).succ.to_s
# => "1582-10-15"
# In England, 2 Sep 1752 was immediately followed by 14 Sep 1752.
Date.new(1752, 9, 2, Date::ENGLAND).to_s
# => "1752-09-02"
Date.new(1752, 9, 3, Date::ENGLAND).to_s
# ArgumentError: invalid date
Date.new(1752
超级会员免费看
订阅专栏 解锁全文
1110

被折叠的 条评论
为什么被折叠?



