値Wed, 23 Mar 2016 00:07:00 ICT +07:00
を取得しました。to_s
を呼び出すと、"03/23/2016 12:07 AM"
が返されますが、必要なものは"03/23/2016 07:07 AM"
です。ルビーのユーザータイムゾーンで時刻を文字列に変換する
解説は解説付きです。
値Wed, 23 Mar 2016 00:07:00 ICT +07:00
を取得しました。to_s
を呼び出すと、"03/23/2016 12:07 AM"
が返されますが、必要なものは"03/23/2016 07:07 AM"
です。ルビーのユーザータイムゾーンで時刻を文字列に変換する
解説は解説付きです。
特定の形式の時間が必要な場合は、strftime
にアクセスする必要があります。必要な書式文字列は'%m/%d/%Y %H:%M %p'
です。上にリンクされたマニュアルでは、すべての書式指定子の意味を説明しています。 RubyやRailsの中の時間っぽいですものは、あなたが持っている場合ので、それは問題ではありませんTime#strftime
に一致するstrftime
方法を持っているとしているTime
、DateTime
、ActiveSupport::TimeWithZone
、...あなたはまた、変換したいように見える
utc
。
一緒にそれらを置く:
t.utc.strftime('%m/%d/%Y %H:%M %p')
は、あなたが本当にデバッグ以外の目的で倍にto_s
またはinspect
を使用しないでください。 strftime
にまっすぐに行く方が良いので、後に書いたフォーマットを正確に得ることができます。
私はこれがうまくいくと思います:t
はTime
のインスタンスである
(t + (7*60*60)).to_s
。
私はトリックを参照してください、しかし、これを処理する方法をRailsは知っていませんか? – Frozenna
@Frozennaこの[リンク](http://api.rubyonrails.org/classes/ActiveSupport/TimeWithZone.html)が役立つと思います。 –
は、 'Object :: Time'または' Object :: Date :: DateTime'変数ですか? – DoubleV
@DoubleV ActiveSupport :: TimeWithZoneオブジェクトです。これはActiveRecordの属性です。 – Frozenna
実際には、Railsはすべてのことをすでに行っていますが、私は悪い日付の時刻形式をクライアント側から解析しました。 – Frozenna