0

Datamapper を ORM として使用する最初のプロジェクトを書いているので、しばらくお待ちください。:)

DateTime フィールドから文字列を取得しようとしています。

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

返された文字列は私にとっては良くありません。ActiveRecord では、次のようなことができます。

Error.first.submitted_at.to_s(:only_date)

または他の日付フォーマッタ。DataMapper で同様のものを利用できますか、それとも strftime メソッドを使用する必要がありますか?

4

1 に答える 1

1

これは、AcitveSupport を使用して利用できる機能です。あなたはそれrequire 'activesupport'を得るために行うことができます. それはやり過ぎかもしれませんが。#stampfrom Facetsを使用して同じことを行うこともできますが、: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"    
于 2009-08-24T12:54:49.820 に答える