在Ruby中,将两个字符串作为日期进行比较并获取较旧的字符串

时间:2014-10-24 11:38:09

标签: ruby date compare

就像在Java中提到的OP一样,我想知道如何在Ruby中使用:

How to compare a date - String in the custom format “dd.MM.yyyy, HH:mm:ss” with another one?

我有这两个字符串,它们传达日期和时间,我想找到两者中较老的一个:

20141024_133641 20141024_142440

格式为%Y%m%d_%H%M%S;在这种情况下,这使前者成为旧的。

2 个答案:

答案 0 :(得分:4)

简单的词典字符串比较将在此处完成,因为您的日期字符串按严格顺序从最重要到最不重要(年到秒)排序。如果d1是您的第一个日期而d2是您的第二个日期字符串,那么简单的红宝石就会获得旧日期:

[d1,d2].min

答案 1 :(得分:0)

您可以使用DateTime.parse

 d1 = DateTime.parse("20141024_142440","%Y%m%d_%H%M%S")
 d2 = DateTime.parse("20141024_133641","%Y%m%d_%H%M%S")

并照常比较它们

 if d1 > d2 ...

或者像@kroky说

[d1,d2].min.to_s #=> "2014-10-24T13:36:41+00:00"
[d1,d2].max.to_s #=> "2014-10-24T14:24:40+00:00"