更改Date对象的月份而不返回新日期

时间:2018-03-08 18:04:00

标签: ruby date activesupport

有没有办法在不返回新对象的情况下更改Date对象的月份?

因为Date.now.changeDate.now += 1.month会返回新的日期对象。

2 个答案:

答案 0 :(得分:2)

不,“所有日期对象都是不可变的”,请参阅https://ruby-doc.org/stdlib-2.5.0/libdoc/date/rdoc/Date.html

答案 1 :(得分:1)

没有。 From the Date class docs

  

所有日期对象都是不可变的;因此无法修改自己。

如果你真的想要看起来可变的日期对象,你可以使用Delegator编写一个包装器。它将添加setter方法并将新Date对象捕获为新委托。

但是你应该重组以使用不可移动的对象。