[英]Comparing Datetime to same datetime in string
在Rails控制台中,
> time1 = DateTime.now
=> Thu, 23 Feb 2017 10:50:27 +0630
> time2 = "#{time1}"
=> "2017-02-23T10:50:27+06:30"
> time1 == time2
=> false
这是对的。 因为
> time1.class
=> DateTime
> time2.class
=> String
所以我将time2
更改为datetime。
> time2.to_datetime.class
=> DateTime
> time2.to_datetime
=> Thu, 23 Feb 2017 10:50:27 +0630
并尝试再次比较这些时间。
> time1 == time2.to_datetime
=> false
> time1
=> Thu, 23 Feb 2017 10:50:27 +0630
> time2.to_datetime
=> Thu, 23 Feb 2017 10:50:27 +0630
结果为假。
时间1是DateTime对象,而时间2是字符串类型的对象在这里,你必须转换time2
成datetime
要比较两个日期,您将必须使用以下方式将两个日期都转换为整数
» time1.to_i == time2.to_datetime.to_i
=> true
最好比较两个字符串或两个整数,而不是两个DateTime
对象,因为DateTime
保存诸如时区等信息。
time1.to_s == time2
#=> true
错误,因为我们有不同的会议记录:
> time1 == time2.to_datetime
=> false
> time1
=> Thu, 23 Feb 2017 10:37:56 +0630
> time2.to_datetime
=> Thu, 23 Feb 2017 10:26:18 +0630
10:37:56 +0630
大于10:26:18 +0630
因此,如果您比较为:
time1 > time2.to_datetime
=> true
> time1.to_i == time2.to_datetime.to_i
=> true
这可行。 但不是一个很好的解决方案。
你可以试试:
DateTime.strptime(time1, "%Y-%m-%dT%H:%M") == DateTime.strptime(time2.to_datetime, "%Y-%m-%dT%H:%M")
=>> true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.