質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

3624閲覧

railsのcreate_atやupdated_atなどの時間がおかしい

VerfolgungEin

総合スコア147

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2016/10/31 12:21

更新された時間がなぜか日本時間より-9時間された時間帯がupdated_atの時間表記になってしまうのですがなぜでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

初期状態から設定変更していなければタイムゾーンはUTC(協定世界時)で処理されるようなので、日本時間-9で問題ないです。(rails console での表示ですよね?)
現地時刻(日本時間)で表示したい場合は config/application.rb のでタイムゾーンを設定すると良いようです。

rb

1 class Application < Rails::Application 2 3 # 省略 4 5 config.time_zone = 'Tokyo'

【補足】

railsコンソールでの時刻表示

sh

1$ bin/rails c -e production

ruby

1[1] pry(main)> Rails.configuration.time_zone 2=> "UTC" 3[2] pry(main)> Issue.last.created_on 4=> Sun, 30 Oct 2016 01:07:01 UTC +00:00

config/application.rb ファイル変更

diff

1--- a/config/application.rb 2+++ b/config/application.rb 3@@ -23,6 +23,7 @@ module RedmineApp 4 # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. 5 # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC. 6 # config.time_zone = 'Central Time (US & Canada)' 7+ config.time_zone = 'Tokyo' 8 9 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. 10 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]

railsコンソールでの時刻表示

sh

1$ bin/rails c -e production

ruby

1[1] pry(main)> Rails.configuration.time_zone 2=> "Tokyo" 3[2] pry(main)> Issue.last.created_on 4=> Sun, 30 Oct 2016 10:07:01 JST +09:00

【補足2】

Cloud9で試してみました。

デフォルト状態でUTC表示になります。
UTC

config/application.rbconfig.time_zone = 'Tokyo' 追加
タイムゾーン変更

アプリ再起動してから表示すると日本時間の表示に変化しています。
JST

投稿2016/10/31 12:43

編集2016/10/31 13:35
tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

VerfolgungEin

2016/10/31 12:50

返答が返されるまでの間、それと同等の答えが記述されていました、しかしながら ```config.rb config.time_zone = 'Tokyo' config.time_zone = :ja ``` とやったり、 ```html <%= Time.current %> ``` とやっても時間がUTCのままになってしまっているのですが、どうすればよいでしょうか
VerfolgungEin

2016/10/31 12:56

すみません、config.rbではなくきちんとconfig/application.rbです。 そうですね、consoleもしかりですがやはりだめです・・・ まさか環境がcloud9で構築しているのがダメだってことですかね
VerfolgungEin

2016/10/31 13:08

いえ!consoleではTime.currentでtimezoneをTokyoにしたらJSTでした しかしHTMLでTime.currentするとなぜかUTCとしての時刻になってしまいます
tkmtmkt

2016/10/31 13:15

HTMLでの表示の場合は、ブラウザのタイムゾーンに合わせた値を返すのではないかと思われます。
tkmtmkt

2016/10/31 13:37

動作確認してみたらブラウザとか関係なかったです。config/application.rbのconfig.time_zone設定に合わせて時刻表示変化しました。 設定ファイル書き換えてアプリの再起動は行っていますでしょうか? config当たりの設定はアプリ再起動しないと反映されないです。
VerfolgungEin

2016/11/02 04:49

再起動したら適応されました、ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問