2017-07-05 8 views
0

私は同様の質問を読んだが解決策は見つけられなかった。Rails 5のDateTime.strptimeでのデフォルトのアプリケーションタイムゾーンの使用

マイレール5のAppは

'アメリカ/ Sao_Paulo'

時間帯であるが、データベースにUTCのすべての時間を節約できます。私のデータベースに日時

「2017年1月1日19時00分○○秒」

を保存するとき

それがUTCに変換し、データベースにUTSの時間を節約します。

DateTime.strptime(date + ' ' + time, '%d/%m/%Y %H:%M:%S') 

そして、これは、彼らがそうであるように、日付と時刻の値を取り、UTCに変換せずにデータベースに保存されますが:

今、私が使用して日時に文字列を変換する必要があります。私の日時がUTCでないことをアプリに知らせるにはどうすればいいですか?

答えて

0

ActiveRecord(デフォルト)は、任意の日時をUTCに保存します。だから、私の意見では、ActiveRecordはUTCに変換するので、データベースの時刻がまだUTCでない場合は心配する必要はありません。

したがって、データベースに保存するとき、ActiveRecordは常にUTC(UTCであるかどうかにかかわらず)に変換します。

し、データベースからフェッチする場合、それはあなたがファイルconfig.time_zone = 'YOUR_TIMEZONE'で見つけることができますconfig/application.rb

であなたの設定に従います。

参考: http://api.rubyonrails.org/classes/ActiveRecord/Timestamp.html

それは、歓声を役に立てば幸い!