私は新しいRails 3アプリを作成しています。その中のいくつかのフィールドにDateTime
を使用していますが、すべての日時フィールド標準にはUTCがあります(ビュー内)のような:
2010-10-10 16:19:00 UTC
UTC部分を削除するにはどうすればよいですか?
更新:ここに私が持っているものがあります:
<%= trip.truckleft.strftime("%Y-%m-%d %H:%M") %>
だから今私がしなければならないことはそれをヘルパーに入れることですが、より普遍的な方法はありませんか?
他の投稿を見ましたが、time_formats.rb
イニシャライザでは、しかし、私はそれを成功させることができませんでした。
ご協力いただきありがとうございます!
別の-おそらく現在好まれている-方法は Railsの国際化とローカリゼーションのサポート を使用することです。このガイドには学ぶべきことがたくさんあるので、tl; drバージョンは次のとおりです。
<%= l trip.truckleft, :format => :long %>
事前定義されたいくつかの日付と時刻の形式 like :long
すでに英語で利用できます。また、config/locales/en.yml
これらの例のYAML構造に従う。まだi18n/l10n全体にあまり興味がなく、常にl
メソッドを見るのがわかりにくい場合は、以下を使用することもできます。
<%= trip.truckleft.to_formatted_s(:long) %>
これが最終的に私のために働いたものです:
新しいファイルを作成しました:
config/initializers/
名前:time_formats.rb
そして、これをそのファイルに追加しました:
Time::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M"
その後、サーバーを保存して再起動すると、動作し始めました。
私はi18nを使用して日付をフォーマットし、これをen.ymlに入れています:
date:
formats:
default: "%m/%d/%Y"
私はモデルが日付を表示する方法のためにそのフォーマットを再利用したかったので、私のconfig/initializers/time_formats.rbにはこれが含まれています:
Date::DATE_FORMATS[:default] = lambda { |date| I18n.l(date) }
正確には、これらを初期化子に入れる必要があります。
Date::DATE_FORMATS[:default] = "%m-%d-%Y"
Time::DATE_FORMATS[:default] = "%m-%d-%Y %H:%M"
日時がある場合、2番目の日時が機能します(例:モデルのcreated_at)。
追加 config/environment.rb
my_datetime_formats = { :default => '%F %T' } #or any other you like
my_date_formats = { :default => '%F' } #or any other you like
Time::DATE_FORMATS.merge!(my_datetime_formats)
Date::DATE_FORMATS.merge!(my_date_formats)
(他の回答との違い-merge!
方法)
config/environment.rb
ファイルの最後に次の行を追加できます。
Date::DATE_FORMATS[:default] = "%Y-%m-%d %H:%M"