2011-11-19 75 views
70

我需要使用DateTime.now獲取當前日期,並「剝離」時間。Rails DateTime.now without Time

例如,這顯示了我想:DateTime.now => Sat, 19 Nov 2011 18:54:13 UTC +00:00

這顯示了我想:DateTime.now.some_operation => 2011-11-06 00:00:00 UTC

+9

日期時間沒有時間? – ajahongir

回答

131

嘗試DateTime.now.to_dateDateTime.now.beginning_of_day

+0

@sekmo beginning_of_day是activesupport(rails)的一部分。 –

+1

最好不要使用沒有區域的'DateTime.now'。最好使用'Time.zone.now',DateTime.current','DateTime.now.in_time_zone','DateTime.now.utc','DateTime.now.getlocal','DateTime.now.iso8601而不是DateTime.now.jisx0301,DateTime.now.rfc3339,DateTime.now.to_i,DateTime.now.to_f。 –

0

想通了。這工作:

DateTime.now.in_time_zone.midnight 
15

你需要什麼功能的strftime:

Time.now.strftime("%Y-%d-%m %H:%M:%S %Z") 
+0

如果您要將數據插入數據庫,該數據庫需要'%Y-%m-%d%H:%M:%S'格式數據,因爲它會顛倒月份和日期值 – quetzaluz

4

如果你很高興require 'active_support/core_ext',那麼你可以使用

DateTime.now.midnight # => Sat, 19 Nov 2011 00:00:00 -0800 
+1

剛剛注意到紅寶石-on-rails標籤,所以我想你很樂意要求ActiveSupport :) –

7

Date.today.to_time怎麼樣?

2

如果你想今天沒有時間日期,只是用Date.today

2

只需使用:當日期:)你的意思Date.today

Date.current