Ruby Datamapper DateTime到字符串的行为

Ruby Datamapper DateTime到字符串的行为,ruby,string,datetime,datamapper,Ruby,String,Datetime,Datamapper,我用Datamapper作为ORM编写了我的第一个项目,所以请耐心等待。:) 我尝试从DateTime字段获取字符串: Error.first.submitted_at.to_s =>“2009-08-24T12:13:32+02:00” 返回的字符串对我不好。在ActiveRecord中,我可以执行以下操作: 错误。第一个。在提交到(:仅\u日期) 或任何其他日期格式化程序。DataMapper中是否有类似的功能,或者我必须使用strftime方法?这是使用AcitveSupport时可用的功

我用Datamapper作为ORM编写了我的第一个项目,所以请耐心等待。:)

我尝试从DateTime字段获取字符串:

Error.first.submitted_at.to_s =>“2009-08-24T12:13:32+02:00”

返回的字符串对我不好。在ActiveRecord中,我可以执行以下操作:

错误。第一个。在提交到(:仅\u日期)


或任何其他日期格式化程序。DataMapper中是否有类似的功能,或者我必须使用strftime方法?

这是使用AcitveSupport时可用的功能。您可以通过
要求“activesupport”
来获得它。不过,这可能有点过头了。您也可以使用from来执行相同的操作,但必须设置
:only_date
格式:

require 'facets/date'

Date::FORMAT[:only_date] = '%d.%m.%y'  # For Date objects
Time::FORMAT[:only_date] = '%d.%m.%y'  # For DateTime objects

d = DateTime.now
d.stamp(:only_date)  # => "24.08.09"
如果您确实想将其与
to_s
方法一起使用,您也可以这样做:

require 'facets/date'

Date::FORMAT[:only_date] = '%d.%m.%y'  # For Date objects
Time::FORMAT[:only_date] = '%d.%m.%y'  # For DateTime objects

class DateTime
  alias :default_to_s :to_s
  def to_s(format=nil)
    if format.nil?
      default_to_s
    else
      stamp format
    end
  end
end

d = DateTime.now
d.to_s(:only_date)  # => "24.08.09"    

我希望DataMapper能以某种方式支持它。我将用我的实现将DateTime类扩展到\u。谢谢