私はこの日時を持っている:DateTime値からゾーンを削除するにはどうすればよいですか?
=> Fri, 03 Feb 2012 11:52:42 -0500
どのように私はRubyでゾーン(-0500)を削除することができますか? は、私はちょうどこのような何かをしたい:
=> Fri, 03 Feb 2012 11:52:42
私はこの日時を持っている:DateTime値からゾーンを削除するにはどうすればよいですか?
=> Fri, 03 Feb 2012 11:52:42 -0500
どのように私はRubyでゾーン(-0500)を削除することができますか? は、私はちょうどこのような何かをしたい:
=> Fri, 03 Feb 2012 11:52:42
時間は常に(それが1なしでは意味を持たない)ゾーンを持っています。あなたはDateTime#strftime
を使用して印刷するときにそれを無視することを選択することができます。
now = DateTime.now
puts now
#=> 2012-02-03T10:01:24-07:00
puts now.strftime('%a, %d %b %Y %H:%M:%S')
#=> Fri, 03 Feb 2012 10:01:24
は、特定のフォーマットを構築するために使用される不可解なコードについてはTime#strftime
を参照してください。
また、より一般的な表現については、convert your DateTime to UTCとすることもできます。
他のすべては、あなたもDATE_FORMATS
アプリケーションで出力フォーマットを標準化することができますRailsのハッシュに同じstrftime
パラメータを追加することができます受け入れ答えに加えて
zoned_time = Time.now
unzoned_time = Time.new(zoned_time.strftime("%Y").to_i,zoned_time.strftime("%m").to_i,zoned_time.strftime("%d").to_i,zoned_time.strftime("%H").to_i,zoned_time.strftime("%M").to_i,zoned_time.strftime("%S").to_i,"+00:00")
を失敗しました。 config/initializers/datetime_formats.rb
で
:
Time::DATE_FORMATS[:nozone] = '%a, %d %b %Y %H:%M:%S'
次に、あなたのコードの中であなたができる:
Time.zone.now.to_s(:nozone)
あなたも、それをデフォルトにすることができます:
Time::DATE_FORMATS[:default] = '%a, %d %b %Y %H:%M:%S'
Time.zone.now.to_s
別々のハッシュもあります日付:
Date::DATE_FORMATS[:default] = '%a, %d %b %Y'
この機能は長年にわたって存在していますが、ほとんど知られていないようです。
まったくありません! DateTime(Timeと同じではない)はカレンダー情報のみを格納し、特定の時点を指す必要はありません。したがって、場合によっては不特定の時間帯が意味をなす。たとえば、http://tools.ietf.org/html/rfc5545#section-3.3.5(フォーム#1)。 – skalee
@skalee私はあなたが['Date'](http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/Date.html)クラスを[' DateTime']と間違えていると思います(http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html)クラスです。前者にはカレンダー情報のみが含まれ、後者には時間が含まれます(タイムゾーンに関連付ける必要があります)。 'DateTime.new(2016,5,5).to_s#=>" 2016-05-05T00:00:00 + 00:00 "の出力を考えてみましょう。最後の' +00:00'は、これはGMT ** _(ロンドンなど)の真夜中です。デンバー(CO)の深夜ではありません。 – Phrogz