如何从rails中的日期时间中删除毫秒?

时间:2013-03-04 10:29:02

标签: ruby-on-rails ruby-on-rails-3 datetime

我必须比较rails中的日期以获取该日期之后的值我已将日期发送为"2013-03-04T06:26:25Z"但实际上db中的记录包含日期2013-03-04 06:26:25.817149所以当我检查时它也返回该记录的日期,但我希望在该日期之后记录。我怎样才能从数据库中删除毫秒?请帮帮我。

3 个答案:

答案 0 :(得分:32)

我有类似的问题

在将时间对象发送到数据库之前更新这样的时间对象:

time.change(:usec => 0)

答案 1 :(得分:12)

从ruby 1.9开始,您可以使用round

t = Time.now.round
t.usec # => 0

答案 2 :(得分:1)

我也遇到了这个问题,但是当我应用更改as indicated in @Intrepidd's answer时,它并没有影响我的时间对象的微秒。

请注意(至少目前):usec密钥仅适用于Time#change方法,而不适用适用于DateTime#change方法。

DateTime#change方法会忽略它不接受的键,因此除非您检查过,否则您无法判断您尝试更改的微秒是否有效进一步对象(例如使用DateTime#rfc3339(9))。

因此,在尝试此更改之前,请确保您使用的是Time对象,而不是DateTime对象。