Railsタイムスタンプをより人間が読める形式でフォーマットするにはどうすればよいですか?ビューでcreated_at
またはupdated_at
を次のように出力するだけの場合:
<% @created = scenario.created_at %>
それから私は得るでしょう:
2009-03-27 23:53:38 UTC
strftime
(Rubyの時代から)および to_formatted_s
(RailsのActiveSupportから)関数は、すべての時間フォーマットのニーズを処理できるはずです。
また
<%= l scenario.created_at, :format => :sample) %>
そしてlocales/en.yml(言語による)
en:
time:
formats:
sample: '%d.%m.%Y'
詳細については、 http://guides.rubyonrails.org/i18n.html を参照してください。
I18nの機能を見てください。それはあなたがあなたの見解で以下をすることを可能にします:
<%= localize(scenario.created_at, :format => :long) %>
ここで、フォーマットはロケールで定義されています。 詳細
Time.now()。to_iはうまく機能します。逆変換にはTime.at(argument)を使用します
strftime
を使用して、さまざまな方法でタイムスタンプをフォーマットできます。私は some_data[:created_at].strftime('%F %T')
が好きです。 %F
は「2017-02-08」(カレンダーの日付が延長)を示し、%T
は「08:37:48」(現地時間が延長)を示します。
タイムゾーンの問題については、この行をconfig/application.rb
ファイルに追加してください
config.time_zone = 'your_timezone_string'
config.active_record.default_timezone = :local