web-dev-qa-db-ja.com

タイムスタンプのフォーマット

Railsタイムスタンプをより人間が読める形式でフォーマットするにはどうすればよいですか?ビューでcreated_atまたはupdated_atを次のように出力するだけの場合:

<% @created = scenario.created_at %>

それから私は得るでしょう:

2009-03-27 23:53:38 UTC

21
alamodey

strftime (Rubyの時代から)および to_formatted_s (RailsのActiveSupportから)関数は、すべての時間フォーマットのニーズを処理できるはずです。

23
Greg Campbell

また

<%= l scenario.created_at, :format => :sample) %>

そしてlocales/en.yml(言語による)

  en:
    time:
      formats:
        sample: '%d.%m.%Y'

詳細については、 http://guides.rubyonrails.org/i18n.html を参照してください。

7
wildDAlex

I18nの機能を見てください。それはあなたがあなたの見解で以下をすることを可能にします:

<%= localize(scenario.created_at, :format => :long) %>

ここで、フォーマットはロケールで定義されています。 詳細

7
acw

Time.now()。to_iはうまく機能します。逆変換にはTime.at(argument)を使用します

4
Devaroop

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
0
ekauffmann