2011-11-19 80 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