|
47 | 47 | # |
48 | 48 | # == \Time Internal Representation |
49 | 49 | # |
50 | | -# Time implementation uses a signed 63 bit integer, Integer, or |
51 | | -# Rational. |
52 | | -# It is a number of nanoseconds since the _Epoch_. |
| 50 | +# Conceptually, Time class uses a Rational value to represent the number of |
| 51 | +# nanoseconds from _Epoch_, 1970-01-01 00:00:00 UTC. |
| 52 | +# There are no boundary or resolution limitations. |
| 53 | +# The value can be obtaind using Time#to_r. |
| 54 | +# |
| 55 | +# The Time class always uses the Gregorian calendar. |
| 56 | +# I.e. the proleptic Gregorian calendar is used. |
| 57 | +# Other calendars, such as Julian calendar, are not supported. |
| 58 | +# |
| 59 | +# The implementation uses a signed 63 bit integer or Integer (Bignum) to |
| 60 | +# represent the Rational values if possible. |
| 61 | +# (The signed 63 bit integers are used regardless of 32 and 64 bit environments.) |
53 | 62 | # The signed 63 bit integer can represent 1823-11-12 to 2116-02-20. |
54 | 63 | # When Integer or Rational is used (before 1823, after 2116, under |
55 | 64 | # nanosecond), Time works slower than when the signed 63 bit integer is used. |
56 | 65 | # |
57 | 66 | # Ruby uses the C function +localtime+ and +gmtime+ to map between the number |
58 | 67 | # and 6-tuple (year,month,day,hour,minute,second). |
59 | | -# +localtime+ is used for local time and "gmtime" is used for UTC. |
| 68 | +# +localtime+ is used for local time and +gmtime+ is used for UTC. |
60 | 69 | # |
61 | 70 | # Integer and Rational has no range limit, but the localtime and |
62 | 71 | # gmtime has range limits due to the C types +time_t+ and <tt>struct tm</tt>. |
63 | 72 | # If that limit is exceeded, Ruby extrapolates the localtime function. |
64 | 73 | # |
65 | | -# The Time class always uses the Gregorian calendar. |
66 | | -# I.e. the proleptic Gregorian calendar is used. |
67 | | -# Other calendars, such as Julian calendar, are not supported. |
68 | | -# |
69 | 74 | # +time_t+ can represent 1901-12-14 to 2038-01-19 if it is 32 bit signed integer, |
70 | 75 | # -292277022657-01-27 to 292277026596-12-05 if it is 64 bit signed integer. |
71 | 76 | # However +localtime+ on some platforms doesn't supports negative +time_t+ (before 1970). |
72 | 77 | # |
73 | 78 | # <tt>struct tm</tt> has _tm_year_ member to represent years. |
74 | 79 | # (<tt>tm_year = 0</tt> means the year 1900.) |
75 | 80 | # It is defined as +int+ in the C standard. |
76 | | -# _tm_year_ can represent between -2147481748 to 2147485547 if +int+ is 32 bit. |
| 81 | +# _tm_year_ can represent years between -2147481748 to 2147485547 if +int+ is 32 bit. |
77 | 82 | # |
78 | 83 | # Ruby supports leap seconds as far as if the C function +localtime+ and |
79 | 84 | # +gmtime+ supports it. |
|
0 commit comments