从日期时间字段中删除时间

时间:2014-10-09 17:49:09

标签: ruby

在字段中,日期和时间设置为" 10/9/2014 7:43 PM"。

我想删除时间,只需要日期,以便将其与今天的日期进行比较。即,我只想要"10/9/2014"

有人可以建议怎么做吗?

3 个答案:

答案 0 :(得分:2)

是字符串还是DateTime对象?

如果是DateTime对象,只需使用to_date将其转换为日期:

 myDate.to_date

如果它是一个字符串,只需split并获取第一部分:

"10/9/2014 7:43 PM".split(' ').first
=> "10/9/2014"

答案 1 :(得分:1)

我做

require 'date'
date = Date.parse  "10/9/2014 7:43 PM"
# => #<Date: 2014-09-10 ((2456911j,0s,0n),+0s,2299161j)>
date.to_s # => "2014-09-10"

使用Date::strptime

的另一种方法
date = Date.strptime("10/9/2014 7:43 PM", "%d/%m/%Y %l:%M %p")
# => #<Date: 2014-09-10 ((2456911j,0s,0n),+0s,2299161j)>
date.to_s # => "2014-09-10"

答案 2 :(得分:0)

您可以格式化日期:

d = DateTime.new(2014, 10, 9, 7, 43, 0)
d.strftime("%m/%d/%Y") -> Gives "10/09/2014

或者你可以d.strftime("%D")