我怎么知道对象是日期还是日期时间?

时间:2015-09-03 18:16:46

标签: ruby class

我需要验证一个对象并知道它是否包含DateDateTime。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

使用: instance_of

object.instance_of? Date
object.instance_of? DateTime

所以,你可以这样做:

if object.instance_of? Date
  puts "Its a Date"
elsif object.instance_of? DateTime
  puts "Its a DateTime"
end

答案 1 :(得分:1)

您可以使用:

object.instance_of?

DateTime是Date的子类,因此使用Date可以使用DateTime完成任何操作:

 object.kind_of?
 object.is_a?

kind_of?is_a?是同义词。 instance_of?与其他两个不同之处在于,如果对象是该确切类的实例而不是子类,则它仅返回true。

例如,5.is_a? Integer5.kind_of? Integer返回true,因为5是Fixnum,Fixnum是Integer的子类。但是5.instance_of? Integer返回false。