Rails のタイムスタンプを人間が読みやすい形式にするにはどうすればよいですか? 単純に印刷するcreated_at
かupdated_at
、次のように表示すると:
<% @created = scenario.created_at %>
それから私は得るでしょう:
2009-03-27 23:53:38 UTC
Rails のタイムスタンプを人間が読みやすい形式にするにはどうすればよいですか? 単純に印刷するcreated_at
かupdated_at
、次のように表示すると:
<% @created = scenario.created_at %>
それから私は得るでしょう:
2009-03-27 23:53:38 UTC
( strftime
Ruby の Time から) およびto_formatted_s
(Rails の ActiveSupport から) 関数は、時間の書式設定のすべてのニーズを処理できるはずです。
I18n 機能を見てみましょう。ビューで次のことができます。
<%= localize(scenario.created_at, :format => :long) %>
フォーマットはロケールで定義されています。 より詳しい情報
また
<%= l scenario.created_at, :format => :sample) %>
そして locales/en.yml (言語によって異なります)
en:
time:
formats:
sample: '%d.%m.%Y'
詳細については、http: //guides.rubyonrails.org/i18n.htmlを参照してください。
タイムスタンプ ファイルを変更する必要があります。私の場合、このファイルは にあります/usr/local/rvm/gems/ruby-2.0.0-p195/gems/activerecord-4.2.0/lib/active_record/timestamp.rb
。次の行を検索する必要があります。
self.class.default_timezone == :utc ? Time.now.utc : Time.now
これを次のように変更します。
self.class.default_timezone == :utc ? Time.now.utc : Time.now.strftime('%Y-%m-%d %H-%M-%S')
トリックは、strftime
メソッドでフォーマットを変更することです。必要に応じてフォーマットを変更できます。
これで、レールはフォーマットを使用して「updated_at」列を更新します。