私はこのようなものを解析しています:
11/23/10 23:29:57
タイムゾーンは関連付けられていませんが、UTCタイムゾーン内にあることがわかります(私はそうではありません)。これをUTCタイムゾーンにあるかのように解析するには、どうすればRubyを取得できますか?
文字列を解析する前に、文字列にUTCタイムゾーン名を追加することができます。
require 'time'
s = "11/23/10 23:29:57"
Time.parse(s) # => Tue Nov 23 23:29:57 -0800 2010
s += " UTC"
Time.parse(s) # => Tue Nov 23 23:29:57 UTC 2010
Rails=を使用している場合、_ActiveSupport::TimeZone
_ヘルパーを使用できます
_current_timezone = Time.zone
Time.zone = "UTC"
Time.zone.parse("Tue Nov 23 23:29:57 2010") # => Tue, 23 Nov 2010 23:29:57 UTC +00:00
Time.zone = current_timezone
_
ユーザーのタイムゾーンに基づいて、リクエストの開始時にタイムゾーンが設定されるように設計されています。
すべてに_Time.zone
_が必要であるため、_Time.parse
_はサーバーのタイムゾーンとして解析されます。
http://api.rubyonrails.org/classes/ActiveSupport/TimeZone.html
注:上記の時刻形式は機能しなくなったため、サポートされている形式に変更しました。
Time.zoneの設定/設定解除なしの@Pete Brummの回答へのaliter
Time.zone.parse("Tue Nov 23 23:29:57 2010") + Time.zone.utc_offset
ActiveSupport [Railsなどから]を使用している場合、これを行うことができます:
ActiveSupport::TimeZone["GMT"].parse("..... date string")