日期对象中包含哪些额外数据?给出以下示例:
time = Time.at(1392328830)
# => 2014-02-13 15:00:30 -0700
date = time.to_date
# => #<Date: 2014-02-13 ((2456702j,0s,0n),+0s,2299161j)>
这一切代表什么?通过查看Ruby Date documentation来看,目前尚不清楚。
((2456702j,0,0N),+ 0,2299161j)
答案 0 :(得分:4)
您所看到的是Object.inspect
的输出a human-readable representation of an object。对于Date
类:
# Return internal object state as a programmer-readable string.
def inspect() format('#<%s: %s,%s,%s>', self.class, @ajd, @of, @sg) end
# Return the date as a human-readable string.
#
# The format used is YYYY-MM-DD.
def to_s() strftime end
@ajd
是天文朱利安日数 @of
是偏移量或UTC的一天中的一小部分@sg
是日历改革日 出于科学目的,将日期简单地称为日期计数是方便的,从任意的初始日算起。首先选择的日期是公元前4713年1月1日。从此日期开始的天数是 Julian * Day * Number 或 Julian * Date *。这是当地时间,从第一天的午夜算起。更严格的使用是UTC,从第一天的中午算起。这在Date类中被称为 Astronomical * Julian * Day * Number *。在Date类中,Astronomical Julian Day Number包括小数天。
时区表示为与UTC的偏移量,仅为一天的一小部分。此偏移量是晚于(或早于)UTC的本地时间。 UTC偏移0以英格兰为中心(也称为GMT)。当您向东行驶时,偏移量会增加,直到您到达太平洋中部的日期线;当你向西旅行时,偏移量会减少。
格里高利历在不同地区的不同时间引入。为特定区域引入它的日期是该区域的* 日历 * Reform *的日 *。这在Date类中缩写为
sg
(对于公历的开始)。
据我所知,阳历是通过闰年自我纠正的日历。