Ruby Datamapper DateTime到字符串的行为
我用Datamapper作为ORM编写了我的第一个项目,所以请耐心等待。:) 我尝试从DateTime字段获取字符串: Error.first.submitted_at.to_s =>“2009-08-24T12:13:32+02:00” 返回的字符串对我不好。在ActiveRecord中,我可以执行以下操作: 错误。第一个。在提交到(:仅\u日期)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中是否有类似的功能,或者我必须使用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。谢谢