2009-08-24 9 views
0

私はDatamapperをORMとして使用しているので、忍耐してください。 :)Datamapper DateTime to Stringの振る舞い

私はDateTimeフィールドから文字列を取得やろう:

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

返された文字列は私には良くないです。

Error.first.submitted_at.to_s(::only_date)

または任意の他の日付フォーマッタのActiveRecordでは、私はそのような何かを行うことができます。 DataMapperでsomethigを同様に使用できますか?strftimeメソッドを使用する必要がありますか?

答えて

1

これはAcitveSupportを使用して利用できる機能です。あなたはそれを得るためにrequire 'activesupport'を行うことができます。しかし、それは残忍かもしれません。また、同じことを行うためにFacetsから#stampを使用することができますが、:only_date形式に設定する必要があります:あなたは本当に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 

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

を、あなたも、それを行うことができます。

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"  
+0

私は、DataMapperが何らかの形でそれをサポートすることを願っています。私は実装のto_sでDateTimeクラスを拡張します。ありがとう。 – Sebastian