Ruby 有什么理由使用日期吗?

Ruby 有什么理由使用日期吗?,ruby,datetime,date,Ruby,Datetime,Date,至少有三种类型表示时间:time、Date和DateTime(来自ActiveSupport) 我的问题是,DateTime能否完全取代Date?换句话说,如果我可以使用DateTime,是否有理由改用Date?Date不存储任何时间信息,也不存储时区信息。因此,如果在某个时候需要使用时间数据,您可能会遇到麻烦 Cf,我发现它清楚地说明了应该使用什么类、何时使用以及如何使用 require 'date' d = Date.today dt = DateTime.now p Date.public

至少有三种类型表示时间:
time
Date
DateTime
(来自
ActiveSupport


我的问题是,
DateTime
能否完全取代
Date
?换句话说,如果我可以使用
DateTime
,是否有理由改用
Date

Date不存储任何时间信息,也不存储时区信息。因此,如果在某个时候需要使用时间数据,您可能会遇到麻烦

Cf,我发现它清楚地说明了应该使用什么类、何时使用以及如何使用

require 'date'
d = Date.today
dt = DateTime.now
p Date.public_methods - DateTime.public_methods
#=>[:today]
p DateTime.public_methods - Date.public_methods
#=>[:now]
p d.public_methods - dt.public_methods
#=>[]
p dt.public_methods - d.public_methods
#=>[:hour, :min, :minute, :sec, :second, :sec_fraction, :second_fraction, :offset, :zone, :new_offset]

DateTime是Date的一个子类。使用DateTime时,您会丢失
today
类方法,而得到
now
作为回报。不会丢失实例方法。

如果只想存储日期,例如生日或事件发生的某一天,那么只使用日期就更容易了。这样,您就不会因为时区和时区计算的不同而遇到麻烦。如果使用DateTime,那么如果将-2小时的偏移量添加到00:00 am,则得到前一天的10:00 pm

DateTime在Ruby标准库中。在询问之前,您似乎根本没有真正研究过这个问题。互联网上有很多关于日期时间与日期时间的讨论。