21

私のMySQLデータベースでは、updated_atフィールドはUTCとして保存されています。先週、レコードは東部標準時午後7時に入力され、updated_at値は「2012-08-0123:00:00」です。Webクライアントの現地時間をUTCに変換しようとしています。これは、データベースのupdated_atフィールドと比較できます。

例として、「08/01/2012 07:00pm」を「2012-08-0123:00:00」(EDTにいることを考慮)に変換したいのですが、タイムゾーンがありません。変換の側面。「7:00pm」は現地時間であり、任意のタイムゾーンからのものである可能性があります。私の現在のコード:

ruby-1.9.2-head :015 > from_date = DateTime.strptime('08/01/2012 07:00 pm', '%m/%d/%Y %H:%M %p')
=> Wed, 01 Aug 2012 19:00:00 +0000 
ruby-1.9.2-head :016 > from_date = Time.zone.parse(from_date.to_s).utc
=> 2012-08-01 19:00:00 UTC

何かご意見は?

編集:また、strptime呼び出しで「%Z」を使用することもできますが、これは、値にタイムゾーンがあることを前提としていますが、現在は使用していません。Javascriptを使用して、日付/時刻の値と一緒に送信できると思います。

4

2 に答える 2

40

UTCにローカル

created_at.utc

UTCからローカル

created_at.localtime

于 2012-11-01T04:47:33.933 に答える
1

まず、タイムゾーンの設定を確認します。

environment.rb(Rails 2)またはapplication.rb(Rails 3)ファイルでは、次のコマンドでデフォルトのタイムゾーンを設定できます。config.time_zone = 'Eastern Daylight Time (EDT)'

次に、この投稿で、ニーズを満たすための情報とガイダンス、およびヒントを確認します。http:
//databasically.com/2010/10/22/what-time-is-it-or-handling-timezones-in-rails/

于 2012-08-06T18:06:33.150 に答える