rbs 2.0.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/comments.yml +34 -0
- data/.github/workflows/ruby.yml +5 -0
- data/CHANGELOG.md +82 -0
- data/README.md +6 -1
- data/Rakefile +56 -21
- data/core/array.rbs +2866 -1086
- data/core/basic_object.rbs +150 -30
- data/core/binding.rbs +33 -0
- data/core/builtin.rbs +4 -4
- data/core/class.rbs +43 -5
- data/core/comparable.rbs +57 -0
- data/core/complex.rbs +170 -4
- data/core/constants.rbs +51 -0
- data/core/deprecated.rbs +7 -0
- data/core/dir.rbs +305 -20
- data/core/encoding.rbs +1214 -77
- data/core/enumerable.rbs +2173 -234
- data/core/enumerator.rbs +448 -182
- data/core/env.rbs +448 -1
- data/core/errno.rbs +1 -10
- data/core/errors.rbs +152 -2
- data/core/exception.rbs +201 -127
- data/core/false_class.rbs +27 -0
- data/core/fiber.rbs +118 -37
- data/core/fiber_error.rbs +8 -9
- data/core/file.rbs +1060 -142
- data/core/file_test.rbs +287 -32
- data/core/float.rbs +776 -300
- data/core/gc.rbs +185 -34
- data/core/global_variables.rbs +5 -1
- data/core/hash.rbs +1582 -649
- data/core/integer.rbs +974 -204
- data/core/io/buffer.rbs +710 -0
- data/core/io/wait.rbs +29 -8
- data/core/io.rbs +2438 -417
- data/core/kernel.rbs +2319 -318
- data/core/marshal.rbs +37 -2
- data/core/match_data.rbs +123 -6
- data/core/math.rbs +126 -6
- data/core/method.rbs +226 -102
- data/core/module.rbs +421 -45
- data/core/nil_class.rbs +64 -0
- data/core/numeric.rbs +620 -142
- data/core/object.rbs +453 -81
- data/core/object_space.rbs +92 -2
- data/core/proc.rbs +482 -285
- data/core/process.rbs +443 -34
- data/core/ractor.rbs +232 -9
- data/core/random.rbs +151 -52
- data/core/range.rbs +885 -160
- data/core/rational.rbs +122 -6
- data/core/rb_config.rbs +14 -4
- data/core/refinement.rbs +44 -0
- data/core/regexp.rbs +156 -14
- data/core/ruby_vm.rbs +42 -3
- data/core/signal.rbs +78 -39
- data/core/string.rbs +2123 -567
- data/core/string_io.rbs +204 -0
- data/core/struct.rbs +283 -28
- data/core/symbol.rbs +304 -30
- data/core/thread.rbs +1288 -688
- data/core/thread_group.rbs +66 -10
- data/core/time.rbs +643 -217
- data/core/trace_point.rbs +100 -12
- data/core/true_class.rbs +24 -0
- data/core/unbound_method.rbs +73 -7
- data/core/warning.rbs +37 -12
- data/docs/CONTRIBUTING.md +40 -34
- data/docs/stdlib.md +3 -102
- data/docs/syntax.md +54 -11
- data/ext/rbs_extension/extconf.rb +1 -0
- data/ext/rbs_extension/lexer.h +5 -0
- data/ext/rbs_extension/lexstate.c +6 -0
- data/ext/rbs_extension/parser.c +85 -10
- data/ext/rbs_extension/ruby_objs.c +4 -2
- data/ext/rbs_extension/ruby_objs.h +2 -2
- data/goodcheck.yml +0 -11
- data/lib/rbs/annotate/annotations.rb +197 -0
- data/lib/rbs/annotate/formatter.rb +80 -0
- data/lib/rbs/annotate/rdoc_annotator.rb +398 -0
- data/lib/rbs/annotate/rdoc_source.rb +120 -0
- data/lib/rbs/annotate.rb +6 -0
- data/lib/rbs/ast/members.rb +21 -13
- data/lib/rbs/buffer.rb +17 -11
- data/lib/rbs/cli.rb +48 -1
- data/lib/rbs/definition_builder/method_builder.rb +28 -16
- data/lib/rbs/definition_builder.rb +6 -2
- data/lib/rbs/environment.rb +8 -4
- data/lib/rbs/location_aux.rb +12 -0
- data/lib/rbs/namespace.rb +1 -1
- data/lib/rbs/prototype/rb.rb +12 -0
- data/lib/rbs/type_alias_regularity.rb +6 -4
- data/lib/rbs/type_name.rb +1 -1
- data/lib/rbs/types.rb +1 -1
- data/lib/rbs/validator.rb +6 -0
- data/lib/rbs/version.rb +1 -1
- data/lib/rbs/writer.rb +54 -4
- data/lib/rbs.rb +0 -2
- data/schema/typeParam.json +3 -3
- data/sig/annotate/annotations.rbs +102 -0
- data/sig/annotate/formatter.rbs +24 -0
- data/sig/annotate/rdoc_annotater.rbs +82 -0
- data/sig/annotate/rdoc_source.rbs +30 -0
- data/sig/buffer.rbs +6 -2
- data/sig/cli.rbs +2 -0
- data/sig/collection/{collections.rbs → sources.rbs} +0 -0
- data/sig/location.rbs +6 -0
- data/sig/members.rbs +24 -18
- data/sig/method_builder.rbs +5 -4
- data/sig/method_types.rbs +5 -1
- data/sig/polyfill.rbs +78 -0
- data/sig/validator.rbs +3 -1
- data/sig/writer.rbs +79 -2
- data/stdlib/abbrev/0/abbrev.rbs +6 -0
- data/stdlib/abbrev/0/array.rbs +26 -0
- data/stdlib/base64/0/base64.rbs +31 -0
- data/stdlib/benchmark/0/benchmark.rbs +74 -3
- data/stdlib/bigdecimal/0/big_decimal.rbs +614 -165
- data/stdlib/bigdecimal-math/0/big_math.rbs +41 -64
- data/stdlib/cgi/0/core.rbs +649 -21
- data/stdlib/coverage/0/coverage.rbs +164 -2
- data/stdlib/csv/0/csv.rbs +2862 -398
- data/stdlib/date/0/date.rbs +483 -25
- data/stdlib/date/0/date_time.rbs +187 -12
- data/stdlib/dbm/0/dbm.rbs +152 -17
- data/stdlib/digest/0/digest.rbs +146 -0
- data/stdlib/erb/0/erb.rbs +65 -245
- data/stdlib/fiber/0/fiber.rbs +73 -91
- data/stdlib/fileutils/0/fileutils.rbs +301 -1
- data/stdlib/find/0/find.rbs +9 -0
- data/stdlib/forwardable/0/forwardable.rbs +65 -1
- data/stdlib/io-console/0/io-console.rbs +227 -15
- data/stdlib/ipaddr/0/ipaddr.rbs +161 -0
- data/stdlib/json/0/json.rbs +1147 -145
- data/stdlib/logger/0/formatter.rbs +24 -0
- data/stdlib/logger/0/log_device.rbs +64 -0
- data/stdlib/logger/0/logger.rbs +165 -13
- data/stdlib/logger/0/period.rbs +10 -0
- data/stdlib/logger/0/severity.rbs +26 -0
- data/stdlib/monitor/0/monitor.rbs +163 -0
- data/stdlib/mutex_m/0/mutex_m.rbs +35 -6
- data/stdlib/net-http/0/manifest.yaml +1 -0
- data/stdlib/net-http/0/net-http.rbs +1513 -683
- data/stdlib/nkf/0/nkf.rbs +372 -0
- data/stdlib/objspace/0/objspace.rbs +149 -90
- data/stdlib/openssl/0/openssl.rbs +8108 -71
- data/stdlib/optparse/0/optparse.rbs +487 -19
- data/stdlib/pathname/0/pathname.rbs +425 -124
- data/stdlib/prettyprint/0/prettyprint.rbs +120 -99
- data/stdlib/prime/0/integer-extension.rbs +20 -2
- data/stdlib/prime/0/prime.rbs +88 -21
- data/stdlib/pstore/0/pstore.rbs +102 -0
- data/stdlib/pty/0/pty.rbs +64 -14
- data/stdlib/resolv/0/resolv.rbs +420 -31
- data/stdlib/rubygems/0/basic_specification.rbs +4 -1
- data/stdlib/rubygems/0/config_file.rbs +33 -1
- data/stdlib/rubygems/0/dependency_installer.rbs +4 -3
- data/stdlib/rubygems/0/installer.rbs +13 -1
- data/stdlib/rubygems/0/path_support.rbs +4 -1
- data/stdlib/rubygems/0/platform.rbs +5 -1
- data/stdlib/rubygems/0/request_set.rbs +44 -2
- data/stdlib/rubygems/0/requirement.rbs +65 -2
- data/stdlib/rubygems/0/rubygems.rbs +407 -0
- data/stdlib/rubygems/0/source_list.rbs +13 -0
- data/stdlib/rubygems/0/specification.rbs +21 -1
- data/stdlib/rubygems/0/stream_ui.rbs +3 -1
- data/stdlib/rubygems/0/uninstaller.rbs +8 -1
- data/stdlib/rubygems/0/version.rbs +60 -157
- data/stdlib/securerandom/0/securerandom.rbs +44 -0
- data/stdlib/set/0/set.rbs +423 -109
- data/stdlib/shellwords/0/shellwords.rbs +55 -77
- data/stdlib/singleton/0/singleton.rbs +20 -0
- data/stdlib/socket/0/addrinfo.rbs +210 -9
- data/stdlib/socket/0/basic_socket.rbs +103 -11
- data/stdlib/socket/0/ip_socket.rbs +31 -9
- data/stdlib/socket/0/socket.rbs +586 -38
- data/stdlib/socket/0/tcp_server.rbs +22 -2
- data/stdlib/socket/0/tcp_socket.rbs +12 -1
- data/stdlib/socket/0/udp_socket.rbs +25 -2
- data/stdlib/socket/0/unix_server.rbs +22 -2
- data/stdlib/socket/0/unix_socket.rbs +45 -5
- data/stdlib/strscan/0/string_scanner.rbs +210 -9
- data/stdlib/tempfile/0/tempfile.rbs +58 -10
- data/stdlib/time/0/time.rbs +208 -116
- data/stdlib/timeout/0/timeout.rbs +10 -0
- data/stdlib/tmpdir/0/tmpdir.rbs +13 -4
- data/stdlib/tsort/0/cyclic.rbs +1 -0
- data/stdlib/tsort/0/interfaces.rbs +1 -0
- data/stdlib/tsort/0/tsort.rbs +42 -0
- data/stdlib/uri/0/common.rbs +57 -8
- data/stdlib/uri/0/file.rbs +55 -109
- data/stdlib/uri/0/ftp.rbs +6 -3
- data/stdlib/uri/0/generic.rbs +558 -329
- data/stdlib/uri/0/http.rbs +60 -114
- data/stdlib/uri/0/https.rbs +8 -102
- data/stdlib/uri/0/ldap.rbs +143 -137
- data/stdlib/uri/0/ldaps.rbs +8 -102
- data/stdlib/uri/0/mailto.rbs +3 -0
- data/stdlib/uri/0/rfc2396_parser.rbs +66 -26
- data/stdlib/uri/0/ws.rbs +6 -3
- data/stdlib/uri/0/wss.rbs +5 -3
- data/stdlib/yaml/0/dbm.rbs +151 -87
- data/stdlib/yaml/0/store.rbs +6 -0
- data/stdlib/zlib/0/zlib.rbs +90 -31
- metadata +18 -6
- data/lib/rbs/location.rb +0 -221
- data/sig/char_scanner.rbs +0 -9
data/core/time.rbs
CHANGED
|
@@ -1,32 +1,30 @@
|
|
|
1
|
+
# <!-- rdoc-file=timev.rb -->
|
|
1
2
|
# Time is an abstraction of dates and times. Time is stored internally as the
|
|
2
|
-
# number of seconds with
|
|
3
|
-
# Also see the library module Date. The Time class treats GMT (Greenwich Mean
|
|
4
|
-
# Time) and UTC (Coordinated Universal Time) as equivalent. GMT is the older way
|
|
5
|
-
# of referring to these baseline times but persists in the names of calls on
|
|
6
|
-
# POSIX systems.
|
|
3
|
+
# number of seconds with subsecond since the *Epoch*, 1970-01-01 00:00:00 UTC.
|
|
7
4
|
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
5
|
+
# The Time class treats GMT (Greenwich Mean Time) and UTC (Coordinated Universal
|
|
6
|
+
# Time) as equivalent. GMT is the older way of referring to these baseline times
|
|
7
|
+
# but persists in the names of calls on POSIX systems.
|
|
8
|
+
#
|
|
9
|
+
# Note: A Time object uses the resolution available on your system clock.
|
|
11
10
|
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
16
|
-
# used.
|
|
11
|
+
# All times may have subsecond. Be aware of this fact when comparing times with
|
|
12
|
+
# each other -- times that are apparently equal when displayed may be different
|
|
13
|
+
# when compared. (Since Ruby 2.7.0, Time#inspect shows subsecond but Time#to_s
|
|
14
|
+
# still doesn't show subsecond.)
|
|
17
15
|
#
|
|
18
|
-
#
|
|
16
|
+
# ## Examples
|
|
19
17
|
#
|
|
20
18
|
# All of these examples were done using the EST timezone which is GMT-5.
|
|
21
19
|
#
|
|
22
|
-
#
|
|
20
|
+
# ### Creating a New Time Instance
|
|
23
21
|
#
|
|
24
|
-
# You can create a new instance of Time with Time
|
|
25
|
-
#
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
#
|
|
22
|
+
# You can create a new instance of Time with Time.new. This will use the current
|
|
23
|
+
# system time. Time.now is an alias for this. You can also pass parts of the
|
|
24
|
+
# time to Time.new such as year, month, minute, etc. When you want to construct
|
|
25
|
+
# a time this way you must pass at least a year. If you pass the year with
|
|
26
|
+
# nothing else time will default to January 1 of that year at 00:00:00 with the
|
|
27
|
+
# current system timezone. Here are some examples:
|
|
30
28
|
#
|
|
31
29
|
# Time.new(2002) #=> 2002-01-01 00:00:00 -0500
|
|
32
30
|
# Time.new(2002, 10) #=> 2002-10-01 00:00:00 -0500
|
|
@@ -38,19 +36,19 @@
|
|
|
38
36
|
#
|
|
39
37
|
# Or a timezone object:
|
|
40
38
|
#
|
|
41
|
-
#
|
|
42
|
-
# Time.new(2002, 10, 31, 2, 2, 2,
|
|
39
|
+
# zone = timezone("Europe/Athens") # Eastern European Time, UTC+2
|
|
40
|
+
# Time.new(2002, 10, 31, 2, 2, 2, zone) #=> 2002-10-31 02:02:02 +0200
|
|
43
41
|
#
|
|
44
|
-
# You can also use Time
|
|
45
|
-
#
|
|
42
|
+
# You can also use Time.local and Time.utc to infer local and UTC timezones
|
|
43
|
+
# instead of using the current system setting.
|
|
46
44
|
#
|
|
47
|
-
# You can also create a new time using Time
|
|
48
|
-
#
|
|
49
|
-
# Epoch](
|
|
45
|
+
# You can also create a new time using Time.at which takes the number of seconds
|
|
46
|
+
# (with subsecond) since the [Unix
|
|
47
|
+
# Epoch](https://en.wikipedia.org/wiki/Unix_time).
|
|
50
48
|
#
|
|
51
49
|
# Time.at(628232400) #=> 1989-11-28 00:00:00 -0500
|
|
52
50
|
#
|
|
53
|
-
#
|
|
51
|
+
# ### Working with an Instance of Time
|
|
54
52
|
#
|
|
55
53
|
# Once you have an instance of Time there is a multitude of things you can do
|
|
56
54
|
# with it. Below are some examples. For all of the following examples, we will
|
|
@@ -90,7 +88,106 @@
|
|
|
90
88
|
#
|
|
91
89
|
# Time.new(2010,10,31).between?(t1, t2) #=> true
|
|
92
90
|
#
|
|
93
|
-
# ##
|
|
91
|
+
# ## What's Here
|
|
92
|
+
#
|
|
93
|
+
# First, what's elsewhere. Class Time:
|
|
94
|
+
#
|
|
95
|
+
# * Inherits from [class
|
|
96
|
+
# Object](Object.html#class-Object-label-What-27s+Here).
|
|
97
|
+
# * Includes [module
|
|
98
|
+
# Comparable](Comparable.html#module-Comparable-label-What-27s+Here).
|
|
99
|
+
#
|
|
100
|
+
#
|
|
101
|
+
# Here, class Time provides methods that are useful for:
|
|
102
|
+
#
|
|
103
|
+
# * [Creating \Time objects](#class-Time-label-Methods+for+Creating).
|
|
104
|
+
# * [Fetching \Time values](#class-Time-label-Methods+for+Fetching).
|
|
105
|
+
# * [Querying a \Time object](#class-Time-label-Methods+for+Querying).
|
|
106
|
+
# * [Comparing \Time objects](#class-Time-label-Methods+for+Comparing).
|
|
107
|
+
# * [Converting a \Time object](#class-Time-label-Methods+for+Converting).
|
|
108
|
+
# * [Rounding a \Time](#class-Time-label-Methods+for+Rounding).
|
|
109
|
+
#
|
|
110
|
+
#
|
|
111
|
+
# ### Methods for Creating
|
|
112
|
+
#
|
|
113
|
+
# * ::new: Returns a new time from specified arguments (year, month, etc.),
|
|
114
|
+
# including an optional timezone value.
|
|
115
|
+
# * ::local (aliased as ::mktime): Same as ::new, except the timezone is the
|
|
116
|
+
# local timezone.
|
|
117
|
+
# * ::utc (aliased as ::gm): Same as ::new, except the timezone is UTC.
|
|
118
|
+
# * ::at: Returns a new time based on seconds since epoch.
|
|
119
|
+
# * ::now: Returns a new time based on the current system time.
|
|
120
|
+
# * #+ (plus): Returns a new time increased by the given number of seconds.
|
|
121
|
+
# * [-](#method-i-2D) (minus): Returns a new time
|
|
122
|
+
# decreased by the given number of seconds.
|
|
123
|
+
#
|
|
124
|
+
#
|
|
125
|
+
# ### Methods for Fetching
|
|
126
|
+
#
|
|
127
|
+
# * #year: Returns the year of the time.
|
|
128
|
+
# * #month (aliased as #mon): Returns the month of the time.
|
|
129
|
+
# * #mday (aliased as #day): Returns the day of the month.
|
|
130
|
+
# * #hour: Returns the hours value for the time.
|
|
131
|
+
# * #min: Returns the minutes value for the time.
|
|
132
|
+
# * #sec: Returns the seconds value for the time.
|
|
133
|
+
# * #usec (aliased as #tv_usec): Returns the number of microseconds in the
|
|
134
|
+
# subseconds value of the time.
|
|
135
|
+
# * #nsec (aliased as #tv_nsec: Returns the number of nanoseconds in the
|
|
136
|
+
# subsecond part of the time.
|
|
137
|
+
# * #subsec: Returns the subseconds value for the time.
|
|
138
|
+
# * #wday: Returns the integer weekday value of the time (0 == Sunday).
|
|
139
|
+
# * #yday: Returns the integer yearday value of the time (1 == January 1).
|
|
140
|
+
# * #hash: Returns the integer hash value for the time.
|
|
141
|
+
# * #utc_offset (aliased as #gmt_offset and #gmtoff): Returns the offset in
|
|
142
|
+
# seconds between time and UTC.
|
|
143
|
+
# * #to_f: Returns the float number of seconds since epoch for the time.
|
|
144
|
+
# * #to_i (aliased as #tv_sec): Returns the integer number of seconds since
|
|
145
|
+
# epoch for the time.
|
|
146
|
+
# * #to_r: Returns the Rational number of seconds since epoch for the time.
|
|
147
|
+
# * #zone: Returns a string representation of the timezone of the time.
|
|
148
|
+
#
|
|
149
|
+
#
|
|
150
|
+
# ### Methods for Querying
|
|
151
|
+
#
|
|
152
|
+
# * #utc? (aliased as #gmt?): Returns whether the time is UTC.
|
|
153
|
+
# * #dst? (aliased as #isdst): Returns whether the time is DST (daylight
|
|
154
|
+
# saving time).
|
|
155
|
+
# * #sunday?: Returns whether the time is a Sunday.
|
|
156
|
+
# * #monday?: Returns whether the time is a Monday.
|
|
157
|
+
# * #tuesday?: Returns whether the time is a Tuesday.
|
|
158
|
+
# * #wednesday?: Returns whether the time is a Wednesday.
|
|
159
|
+
# * #thursday?: Returns whether the time is a Thursday.
|
|
160
|
+
# * #friday?: Returns whether time is a Friday.
|
|
161
|
+
# * #saturday?: Returns whether the time is a Saturday.
|
|
162
|
+
#
|
|
163
|
+
#
|
|
164
|
+
# ### Methods for Comparing
|
|
165
|
+
#
|
|
166
|
+
# * [#<=>](#method-i-3C-3D-3E): Compares `self` to another time.
|
|
167
|
+
# * #eql?: Returns whether the time is equal to another time.
|
|
168
|
+
#
|
|
169
|
+
#
|
|
170
|
+
# ### Methods for Converting
|
|
171
|
+
#
|
|
172
|
+
# * #asctime (aliased as #ctime): Returns the time as a string.
|
|
173
|
+
# * #inspect: Returns the time in detail as a string.
|
|
174
|
+
# * #strftime: Returns the time as a string, according to a given format.
|
|
175
|
+
# * #to_a: Returns a 10-element array of values from the time.
|
|
176
|
+
# * #to_s: Returns a string representation of the time.
|
|
177
|
+
# * #getutc (aliased as #getgm): Returns a new time converted to UTC.
|
|
178
|
+
# * #getlocal: Returns a new time converted to local time.
|
|
179
|
+
# * #utc (aliased as #gmtime): Converts time to UTC in place.
|
|
180
|
+
# * #localtime: Converts time to local time in place.
|
|
181
|
+
#
|
|
182
|
+
#
|
|
183
|
+
# ### Methods for Rounding
|
|
184
|
+
#
|
|
185
|
+
# * #round:Returns a new time with subseconds rounded.
|
|
186
|
+
# * #ceil: Returns a new time with subseconds raised to a ceiling.
|
|
187
|
+
# * #floor: Returns a new time with subseconds lowered to a floor.
|
|
188
|
+
#
|
|
189
|
+
#
|
|
190
|
+
# ## Timezone Argument
|
|
94
191
|
#
|
|
95
192
|
# A timezone argument must have `local_to_utc` and `utc_to_local` methods, and
|
|
96
193
|
# may have `name`, `abbr`, and `dst?` methods.
|
|
@@ -99,8 +196,8 @@
|
|
|
99
196
|
# to UTC, and `utc_to_local` is the opposite. The result also should be a Time
|
|
100
197
|
# or Time-like object (not necessary to be the same class). The #zone of the
|
|
101
198
|
# result is just ignored. Time-like argument to these methods is similar to a
|
|
102
|
-
# Time object in UTC without
|
|
103
|
-
# e.g. #year, #month, and so on, and epoch time readers, #to_i. The
|
|
199
|
+
# Time object in UTC without subsecond; it has attribute readers for the parts,
|
|
200
|
+
# e.g. #year, #month, and so on, and epoch time readers, #to_i. The subsecond
|
|
104
201
|
# attributes are fixed as 0, and #utc_offset, #zone, #isdst, and their aliases
|
|
105
202
|
# are same as a Time object in UTC. Also #to_time, #+, and #- methods are
|
|
106
203
|
# defined.
|
|
@@ -114,7 +211,7 @@
|
|
|
114
211
|
# The `dst?` method is called with a `Time` value and should return whether the
|
|
115
212
|
# `Time` value is in daylight savings time in the zone.
|
|
116
213
|
#
|
|
117
|
-
# ### Auto
|
|
214
|
+
# ### Auto Conversion to Timezone
|
|
118
215
|
#
|
|
119
216
|
# At loading marshaled data, a timezone name will be converted to a timezone
|
|
120
217
|
# object by `find_timezone` class method, if the method is defined.
|
|
@@ -125,25 +222,65 @@
|
|
|
125
222
|
class Time < Object
|
|
126
223
|
include Comparable
|
|
127
224
|
|
|
128
|
-
#
|
|
129
|
-
#
|
|
130
|
-
#
|
|
131
|
-
#
|
|
132
|
-
#
|
|
133
|
-
#
|
|
134
|
-
#
|
|
135
|
-
#
|
|
136
|
-
#
|
|
137
|
-
# Time.at(
|
|
138
|
-
#
|
|
139
|
-
#
|
|
140
|
-
#
|
|
141
|
-
#
|
|
142
|
-
#
|
|
143
|
-
#
|
|
144
|
-
#
|
|
145
|
-
|
|
146
|
-
|
|
225
|
+
# <!--
|
|
226
|
+
# rdoc-file=timev.rb
|
|
227
|
+
# - at(time, subsec = false, unit = :microsecond, in: nil)
|
|
228
|
+
# -->
|
|
229
|
+
# *Time*
|
|
230
|
+
#
|
|
231
|
+
# This form accepts a Time object `time` and optional keyword argument `in`:
|
|
232
|
+
#
|
|
233
|
+
# Time.at(Time.new) # => 2021-04-26 08:52:31.6023486 -0500
|
|
234
|
+
# Time.at(Time.new, in: '+09:00') # => 2021-04-26 22:52:31.6023486 +0900
|
|
235
|
+
#
|
|
236
|
+
# *Seconds*
|
|
237
|
+
#
|
|
238
|
+
# This form accepts a numeric number of seconds `sec` and optional keyword
|
|
239
|
+
# argument `in`:
|
|
240
|
+
#
|
|
241
|
+
# Time.at(946702800) # => 1999-12-31 23:00:00 -0600
|
|
242
|
+
# Time.at(946702800, in: '+09:00') # => 2000-01-01 14:00:00 +0900
|
|
243
|
+
#
|
|
244
|
+
# *Seconds with Subseconds and Units*
|
|
245
|
+
#
|
|
246
|
+
# This form accepts an integer number of seconds `sec_i`, a numeric number of
|
|
247
|
+
# milliseconds `msec`, a symbol argument for the subsecond unit type (defaulting
|
|
248
|
+
# to :usec), and an optional keyword argument `in`:
|
|
249
|
+
#
|
|
250
|
+
# Time.at(946702800, 500, :millisecond) # => 1999-12-31 23:00:00.5 -0600
|
|
251
|
+
# Time.at(946702800, 500, :millisecond, in: '+09:00') # => 2000-01-01 14:00:00.5 +0900
|
|
252
|
+
# Time.at(946702800, 500000) # => 1999-12-31 23:00:00.5 -0600
|
|
253
|
+
# Time.at(946702800, 500000, :usec) # => 1999-12-31 23:00:00.5 -0600
|
|
254
|
+
# Time.at(946702800, 500000, :microsecond) # => 1999-12-31 23:00:00.5 -0600
|
|
255
|
+
# Time.at(946702800, 500000, in: '+09:00') # => 2000-01-01 14:00:00.5 +0900
|
|
256
|
+
# Time.at(946702800, 500000, :usec, in: '+09:00') # => 2000-01-01 14:00:00.5 +0900
|
|
257
|
+
# Time.at(946702800, 500000, :microsecond, in: '+09:00') # => 2000-01-01 14:00:00.5 +0900
|
|
258
|
+
# Time.at(946702800, 500000000, :nsec) # => 1999-12-31 23:00:00.5 -0600
|
|
259
|
+
# Time.at(946702800, 500000000, :nanosecond) # => 1999-12-31 23:00:00.5 -0600
|
|
260
|
+
# Time.at(946702800, 500000000, :nsec, in: '+09:00') # => 2000-01-01 14:00:00.5 +0900
|
|
261
|
+
# Time.at(946702800, 500000000, :nanosecond, in: '+09:00') # => 2000-01-01 14:00:00.5 +0900
|
|
262
|
+
#
|
|
263
|
+
# Parameters:
|
|
264
|
+
# * `isec_i` is the integer number of seconds in the range `0..60`.
|
|
265
|
+
# * `msec` is the number of milliseconds (Integer, Float, or Rational) in the
|
|
266
|
+
# range `0..1000`.
|
|
267
|
+
# * `usec` is the number of microseconds (Integer, Float, or Rational) in the
|
|
268
|
+
# range `0..1000000`.
|
|
269
|
+
# * `nsec` is the number of nanoseconds (Integer, Float, or Rational) in the
|
|
270
|
+
# range `0..1000000000`.
|
|
271
|
+
# * `in: zone`: a timezone *zone*, which may be:
|
|
272
|
+
# * A string offset from UTC.
|
|
273
|
+
# * A single letter offset from UTC, in the range `'A'..'Z'`, `'J'` (the
|
|
274
|
+
# so-called military timezone) excluded.
|
|
275
|
+
# * An integer number of seconds.
|
|
276
|
+
# * A timezone object; see [Timezone
|
|
277
|
+
# Argument](#class-Time-label-Timezone+Argument) for details.
|
|
278
|
+
#
|
|
279
|
+
def self.at: (Time, ?in: String | Integer | nil) -> Time
|
|
280
|
+
| (Numeric, ?in: String | Integer | nil) -> Time
|
|
281
|
+
| (Integer sec_i, Numeric msec, subsec_unit msec, ?in: String | Integer | nil) -> Time
|
|
282
|
+
|
|
283
|
+
type subsec_unit = :msec | :millisecond | :usec | :microsecond | :nsec | :nanosecond
|
|
147
284
|
|
|
148
285
|
# Creates a Time object based on given values, interpreted as UTC (GMT). The
|
|
149
286
|
# year must be specified. Other values default to the minimum value for that
|
|
@@ -159,49 +296,136 @@ class Time < Object
|
|
|
159
296
|
#
|
|
160
297
|
def self.gm: (Integer year, ?Integer | String month, ?Integer day, ?Integer hour, ?Integer min, ?Numeric sec, ?Numeric usec_with_frac) -> Time
|
|
161
298
|
|
|
162
|
-
#
|
|
299
|
+
# <!--
|
|
300
|
+
# rdoc-file=time.c
|
|
301
|
+
# - Time.local(year, month=1, day=1, hour=0, min=0, sec_i=0, usec=0) -> new_time
|
|
302
|
+
# - Time.local(sec, min, hour, day, month, year, dummy, dummy, dummy, dummy) -> new_time
|
|
303
|
+
# -->
|
|
304
|
+
# Returns a new Time object based the on given arguments; its timezone is the
|
|
305
|
+
# local timezone.
|
|
306
|
+
#
|
|
307
|
+
# In the first form (up to seven arguments), argument `year` is required.
|
|
308
|
+
#
|
|
309
|
+
# Time.local(2000) # => 2000-01-01 00:00:00 -0600
|
|
310
|
+
# Time.local(0, 1, 2, 3, 4, 5, 6.5) # => 0000-01-02 03:04:05.0000065 -0600
|
|
311
|
+
#
|
|
312
|
+
# In the second form, all ten arguments are required, though the last four are
|
|
313
|
+
# ignored. This form is useful for creating a time from a 10-element array such
|
|
314
|
+
# as those returned by #to_a.
|
|
315
|
+
#
|
|
316
|
+
# array = Time.now.to_a
|
|
317
|
+
# p array # => [57, 26, 13, 24, 4, 2021, 6, 114, true, "Central Daylight Time"]
|
|
318
|
+
# array[5] = 2000
|
|
319
|
+
# Time.local(*array) # => 2000-04-24 13:26:57 -0500
|
|
320
|
+
#
|
|
321
|
+
# Parameters:
|
|
322
|
+
# * `year`: an integer year.
|
|
323
|
+
# * `month`: a month value, which may be:
|
|
324
|
+
# * An integer month in the range `1..12`.
|
|
325
|
+
# * A 3-character string that matches regular expression
|
|
326
|
+
# `/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/i`.
|
|
327
|
+
#
|
|
328
|
+
# * `day`: an integer day in the range `1..31` (less than 31 for some months).
|
|
329
|
+
# * `hour`: an integer hour in the range `0..23`.
|
|
330
|
+
# * `min`: an integer minute in the range `0..59`.
|
|
331
|
+
# * `isec_i` is the integer number of seconds in the range `0..60`.
|
|
332
|
+
# * `usec` is the number of microseconds (Integer, Float, or Rational) in the
|
|
333
|
+
# range `0..1000000`.
|
|
163
334
|
#
|
|
164
|
-
#
|
|
335
|
+
#
|
|
336
|
+
# Alias: Time.mktime.
|
|
337
|
+
#
|
|
338
|
+
# Related: Time.utc.
|
|
165
339
|
#
|
|
166
340
|
def self.local: (Integer year, ?Integer | String month, ?Integer day, ?Integer hour, ?Integer min, ?Numeric sec, ?Numeric usec_with_frac) -> Time
|
|
167
341
|
|
|
168
|
-
#
|
|
169
|
-
#
|
|
342
|
+
# <!--
|
|
343
|
+
# rdoc-file=timev.rb
|
|
344
|
+
# - now(in: nil)
|
|
345
|
+
# -->
|
|
346
|
+
# Creates a new Time object from the current system time. This is the same as
|
|
347
|
+
# Time.new without arguments.
|
|
348
|
+
#
|
|
349
|
+
# Time.now # => 2009-06-24 12:39:54 +0900
|
|
350
|
+
# Time.now(in: '+04:00') # => 2009-06-24 07:39:54 +0400
|
|
170
351
|
#
|
|
171
|
-
#
|
|
352
|
+
# Parameter:
|
|
353
|
+
# * `in: zone`: a timezone *zone*, which may be:
|
|
354
|
+
# * A string offset from UTC.
|
|
355
|
+
# * A single letter offset from UTC, in the range `'A'..'Z'`, `'J'` (the
|
|
356
|
+
# so-called military timezone) excluded.
|
|
357
|
+
# * An integer number of seconds.
|
|
358
|
+
# * A timezone object; see [Timezone
|
|
359
|
+
# Argument](#class-Time-label-Timezone+Argument) for details.
|
|
172
360
|
#
|
|
173
|
-
def self.now: () -> Time
|
|
361
|
+
def self.now: (?in: String | Integer | nil) -> Time
|
|
174
362
|
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
180
|
-
#
|
|
363
|
+
# <!--
|
|
364
|
+
# rdoc-file=time.c
|
|
365
|
+
# - Time.utc(year, month=1, day=1, hour=0, min=0, sec_i=0, usec=0) -> new_time
|
|
366
|
+
# - Time.utc(sec_i, min, hour, day, month, year, dummy, dummy, dummy, dummy) -> new_time
|
|
367
|
+
# -->
|
|
368
|
+
# Returns a new Time object based the on given arguments; its timezone is UTC.
|
|
181
369
|
#
|
|
182
|
-
#
|
|
370
|
+
# In the first form (up to seven arguments), argument `year` is required.
|
|
183
371
|
#
|
|
184
|
-
# Time.utc(2000
|
|
185
|
-
# Time.
|
|
372
|
+
# Time.utc(2000) # => 2000-01-01 00:00:00 UTC
|
|
373
|
+
# Time.utc(0, 1, 2, 3, 4, 5, 6.5) # => 0000-01-02 03:04:05.0000065 UTC
|
|
374
|
+
#
|
|
375
|
+
# In the second form, all ten arguments are required, though the last four are
|
|
376
|
+
# ignored. This form is useful for creating a time from a 10-element array such
|
|
377
|
+
# as is returned by #to_a.
|
|
378
|
+
#
|
|
379
|
+
# array = Time.now.to_a
|
|
380
|
+
# p array # => [57, 26, 13, 24, 4, 2021, 6, 114, true, "Central Daylight Time"]
|
|
381
|
+
# array[5] = 2000
|
|
382
|
+
# Time.utc(*array) # => 2000-04-24 13:26:57 UTC
|
|
383
|
+
#
|
|
384
|
+
# Parameters:
|
|
385
|
+
# * `year`: an integer year.
|
|
386
|
+
# * `month`: a month value, which may be:
|
|
387
|
+
# * An integer month in the range `1..12`.
|
|
388
|
+
# * A 3-character string that matches regular expression
|
|
389
|
+
# `/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/i`.
|
|
390
|
+
#
|
|
391
|
+
# * `day`: an integer day in the range `1..31` (less than 31 for some months).
|
|
392
|
+
# * `hour`: an integer hour in the range `0..23`.
|
|
393
|
+
# * `min`: an integer minute in the range `0..59`.
|
|
394
|
+
# * `isec_i` is the integer number of seconds in the range `0..60`.
|
|
395
|
+
# * `usec` is the number of microseconds (Integer, Float, or Rational) in the
|
|
396
|
+
# range `0..1000000`.
|
|
397
|
+
#
|
|
398
|
+
#
|
|
399
|
+
# Alias: Time.gm.
|
|
400
|
+
#
|
|
401
|
+
# Related: Time.local.
|
|
186
402
|
#
|
|
187
403
|
def self.utc: (Integer year, ?Integer | String month, ?Integer day, ?Integer hour, ?Integer min, ?Numeric sec, ?Numeric usec_with_frac) -> Time
|
|
188
404
|
|
|
189
|
-
#
|
|
405
|
+
# <!--
|
|
406
|
+
# rdoc-file=time.c
|
|
407
|
+
# - time + numeric -> time
|
|
408
|
+
# -->
|
|
409
|
+
# Adds some number of seconds (possibly including subsecond) to *time* and
|
|
190
410
|
# returns that value as a new Time object.
|
|
191
411
|
#
|
|
192
|
-
# t = Time.now #=>
|
|
193
|
-
# t + (60 * 60 * 24) #=>
|
|
412
|
+
# t = Time.now #=> 2020-07-20 22:14:43.170490982 +0900
|
|
413
|
+
# t + (60 * 60 * 24) #=> 2020-07-21 22:14:43.170490982 +0900
|
|
194
414
|
#
|
|
195
415
|
def +: (Numeric arg0) -> Time
|
|
196
416
|
|
|
197
|
-
#
|
|
198
|
-
#
|
|
199
|
-
#
|
|
417
|
+
# <!--
|
|
418
|
+
# rdoc-file=time.c
|
|
419
|
+
# - time - other_time -> float
|
|
420
|
+
# - time - numeric -> time
|
|
421
|
+
# -->
|
|
422
|
+
# Returns a difference in seconds as a Float between *time* and `other_time`, or
|
|
423
|
+
# subtracts the given number of seconds in `numeric` from *time*.
|
|
200
424
|
#
|
|
201
|
-
# t = Time.now #=>
|
|
202
|
-
# t2 = t + 2592000 #=>
|
|
425
|
+
# t = Time.now #=> 2020-07-20 22:15:49.302766336 +0900
|
|
426
|
+
# t2 = t + 2592000 #=> 2020-08-19 22:15:49.302766336 +0900
|
|
203
427
|
# t2 - t #=> 2592000.0
|
|
204
|
-
# t2 - 2592000 #=>
|
|
428
|
+
# t2 - 2592000 #=> 2020-07-20 22:15:49.302766336 +0900
|
|
205
429
|
#
|
|
206
430
|
def -: (Time arg0) -> Float
|
|
207
431
|
| (Numeric arg0) -> Time
|
|
@@ -210,9 +434,13 @@ class Time < Object
|
|
|
210
434
|
|
|
211
435
|
def <=: (Time arg0) -> bool
|
|
212
436
|
|
|
213
|
-
#
|
|
437
|
+
# <!--
|
|
438
|
+
# rdoc-file=time.c
|
|
439
|
+
# - time <=> other_time -> -1, 0, +1, or nil
|
|
440
|
+
# -->
|
|
441
|
+
# Compares `time` with `other_time`.
|
|
214
442
|
#
|
|
215
|
-
# -1, 0, +1 or nil depending on whether `time` is less
|
|
443
|
+
# -1, 0, +1 or nil depending on whether `time` is less than, equal to, or
|
|
216
444
|
# greater than `other_time`.
|
|
217
445
|
#
|
|
218
446
|
# `nil` is returned if the two values are incomparable.
|
|
@@ -237,6 +465,7 @@ class Time < Object
|
|
|
237
465
|
|
|
238
466
|
def >=: (Time arg0) -> bool
|
|
239
467
|
|
|
468
|
+
# <!-- rdoc-file=time.c -->
|
|
240
469
|
# Returns a canonical string representation of *time*.
|
|
241
470
|
#
|
|
242
471
|
# Time.now.asctime #=> "Wed Apr 9 08:56:03 2003"
|
|
@@ -244,6 +473,11 @@ class Time < Object
|
|
|
244
473
|
#
|
|
245
474
|
def asctime: () -> String
|
|
246
475
|
|
|
476
|
+
# <!--
|
|
477
|
+
# rdoc-file=time.c
|
|
478
|
+
# - time.asctime -> string
|
|
479
|
+
# - time.ctime -> string
|
|
480
|
+
# -->
|
|
247
481
|
# Returns a canonical string representation of *time*.
|
|
248
482
|
#
|
|
249
483
|
# Time.now.asctime #=> "Wed Apr 9 08:56:03 2003"
|
|
@@ -251,7 +485,8 @@ class Time < Object
|
|
|
251
485
|
#
|
|
252
486
|
def ctime: () -> String
|
|
253
487
|
|
|
254
|
-
#
|
|
488
|
+
# <!-- rdoc-file=time.c -->
|
|
489
|
+
# Returns the day of the month (1..31) for *time*.
|
|
255
490
|
#
|
|
256
491
|
# t = Time.now #=> 2007-11-19 08:27:03 -0600
|
|
257
492
|
# t.day #=> 19
|
|
@@ -259,6 +494,7 @@ class Time < Object
|
|
|
259
494
|
#
|
|
260
495
|
def day: () -> Integer
|
|
261
496
|
|
|
497
|
+
# <!-- rdoc-file=time.c -->
|
|
262
498
|
# Returns `true` if *time* occurs during Daylight Saving Time in its time zone.
|
|
263
499
|
#
|
|
264
500
|
# # CST6CDT:
|
|
@@ -279,11 +515,19 @@ class Time < Object
|
|
|
279
515
|
#
|
|
280
516
|
def dst?: () -> bool
|
|
281
517
|
|
|
518
|
+
# <!--
|
|
519
|
+
# rdoc-file=time.c
|
|
520
|
+
# - time.eql?(other_time)
|
|
521
|
+
# -->
|
|
282
522
|
# Returns `true` if *time* and `other_time` are both Time objects with the same
|
|
283
|
-
# seconds
|
|
523
|
+
# seconds (including subsecond) from the Epoch.
|
|
284
524
|
#
|
|
285
525
|
def eql?: (untyped arg0) -> bool
|
|
286
526
|
|
|
527
|
+
# <!--
|
|
528
|
+
# rdoc-file=time.c
|
|
529
|
+
# - time.friday? -> true or false
|
|
530
|
+
# -->
|
|
287
531
|
# Returns `true` if *time* represents Friday.
|
|
288
532
|
#
|
|
289
533
|
# t = Time.local(1987, 12, 18) #=> 1987-12-18 00:00:00 -0600
|
|
@@ -291,6 +535,11 @@ class Time < Object
|
|
|
291
535
|
#
|
|
292
536
|
def friday?: () -> bool
|
|
293
537
|
|
|
538
|
+
# <!--
|
|
539
|
+
# rdoc-file=time.c
|
|
540
|
+
# - time.getgm -> new_time
|
|
541
|
+
# - time.getutc -> new_time
|
|
542
|
+
# -->
|
|
294
543
|
# Returns a new Time object representing *time* in UTC.
|
|
295
544
|
#
|
|
296
545
|
# t = Time.local(2000,1,1,20,15,1) #=> 2000-01-01 20:15:01 -0600
|
|
@@ -301,6 +550,12 @@ class Time < Object
|
|
|
301
550
|
#
|
|
302
551
|
def getgm: () -> Time
|
|
303
552
|
|
|
553
|
+
# <!--
|
|
554
|
+
# rdoc-file=time.c
|
|
555
|
+
# - time.getlocal -> new_time
|
|
556
|
+
# - time.getlocal(utc_offset) -> new_time
|
|
557
|
+
# - time.getlocal(timezone) -> new_time
|
|
558
|
+
# -->
|
|
304
559
|
# Returns a new Time object representing *time* in local time (using the local
|
|
305
560
|
# time zone in effect for this process).
|
|
306
561
|
#
|
|
@@ -325,6 +580,7 @@ class Time < Object
|
|
|
325
580
|
#
|
|
326
581
|
def getlocal: (?Integer utc_offset) -> Time
|
|
327
582
|
|
|
583
|
+
# <!-- rdoc-file=time.c -->
|
|
328
584
|
# Returns a new Time object representing *time* in UTC.
|
|
329
585
|
#
|
|
330
586
|
# t = Time.local(2000,1,1,20,15,1) #=> 2000-01-01 20:15:01 -0600
|
|
@@ -335,6 +591,7 @@ class Time < Object
|
|
|
335
591
|
#
|
|
336
592
|
def getutc: () -> Time
|
|
337
593
|
|
|
594
|
+
# <!-- rdoc-file=time.c -->
|
|
338
595
|
# Returns `true` if *time* represents a time in UTC (GMT).
|
|
339
596
|
#
|
|
340
597
|
# t = Time.now #=> 2007-11-19 08:15:23 -0600
|
|
@@ -349,6 +606,7 @@ class Time < Object
|
|
|
349
606
|
#
|
|
350
607
|
def gmt?: () -> bool
|
|
351
608
|
|
|
609
|
+
# <!-- rdoc-file=time.c -->
|
|
352
610
|
# Returns the offset in seconds between the timezone of *time* and UTC.
|
|
353
611
|
#
|
|
354
612
|
# t = Time.gm(2000,1,1,20,15,1) #=> 2000-01-01 20:15:01 UTC
|
|
@@ -358,6 +616,11 @@ class Time < Object
|
|
|
358
616
|
#
|
|
359
617
|
def gmt_offset: () -> Integer
|
|
360
618
|
|
|
619
|
+
# <!--
|
|
620
|
+
# rdoc-file=time.c
|
|
621
|
+
# - time.gmtime -> time
|
|
622
|
+
# - time.utc -> time
|
|
623
|
+
# -->
|
|
361
624
|
# Converts *time* to UTC (GMT), modifying the receiver.
|
|
362
625
|
#
|
|
363
626
|
# t = Time.now #=> 2007-11-19 08:18:31 -0600
|
|
@@ -372,12 +635,20 @@ class Time < Object
|
|
|
372
635
|
#
|
|
373
636
|
def gmtime: () -> Time
|
|
374
637
|
|
|
638
|
+
# <!--
|
|
639
|
+
# rdoc-file=time.c
|
|
640
|
+
# - time.hash -> integer
|
|
641
|
+
# -->
|
|
375
642
|
# Returns a hash code for this Time object.
|
|
376
643
|
#
|
|
377
644
|
# See also Object#hash.
|
|
378
645
|
#
|
|
379
646
|
def hash: () -> Integer
|
|
380
647
|
|
|
648
|
+
# <!--
|
|
649
|
+
# rdoc-file=time.c
|
|
650
|
+
# - time.hour -> integer
|
|
651
|
+
# -->
|
|
381
652
|
# Returns the hour of the day (0..23) for *time*.
|
|
382
653
|
#
|
|
383
654
|
# t = Time.now #=> 2007-11-19 08:26:20 -0600
|
|
@@ -385,50 +656,54 @@ class Time < Object
|
|
|
385
656
|
#
|
|
386
657
|
def hour: () -> Integer
|
|
387
658
|
|
|
388
|
-
#
|
|
659
|
+
# <!--
|
|
660
|
+
# rdoc-file=timev.rb
|
|
661
|
+
# - new(year = (now = true), mon = nil, mday = nil, hour = nil, min = nil, sec = nil, zone = nil, in: nil)
|
|
662
|
+
# -->
|
|
663
|
+
# Returns a new Time object based on the given arguments.
|
|
389
664
|
#
|
|
390
|
-
#
|
|
665
|
+
# With no positional arguments, returns the value of Time.now:
|
|
391
666
|
#
|
|
392
|
-
#
|
|
393
|
-
# clock, and may include fractional seconds.
|
|
667
|
+
# Time.new # => 2021-04-24 17:27:46.0512465 -0500
|
|
394
668
|
#
|
|
395
|
-
#
|
|
396
|
-
# specified time.
|
|
669
|
+
# Otherwise, returns a new Time object based on the given parameters:
|
|
397
670
|
#
|
|
398
|
-
#
|
|
671
|
+
# Time.new(2000) # => 2000-01-01 00:00:00 -0600
|
|
672
|
+
# Time.new(2000, 12, 31, 23, 59, 59.5) # => 2000-12-31 23:59:59.5 -0600
|
|
673
|
+
# Time.new(2000, 12, 31, 23, 59, 59.5, '+09:00') # => 2000-12-31 23:59:59.5 +0900
|
|
399
674
|
#
|
|
400
|
-
#
|
|
401
|
-
# string such as "+09:00" or a single letter "A".."Z" excluding "J" (so-called
|
|
402
|
-
# military time zone), or as a number of seconds such as 32400. Or it can be a
|
|
403
|
-
# timezone object, see [Timezone argument](#class-Time-label-Timezone+argument)
|
|
404
|
-
# for details.
|
|
675
|
+
# Parameters:
|
|
405
676
|
#
|
|
406
|
-
#
|
|
407
|
-
#
|
|
408
|
-
#
|
|
409
|
-
#
|
|
410
|
-
#
|
|
677
|
+
# * `year`: an integer year.
|
|
678
|
+
# * `month`: a month value, which may be:
|
|
679
|
+
# * An integer month in the range `1..12`.
|
|
680
|
+
# * A 3-character string that matches regular expression
|
|
681
|
+
# `/jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec/i`.
|
|
411
682
|
#
|
|
412
|
-
#
|
|
683
|
+
# * `day`: an integer day in the range `1..31` (less than 31 for some months).
|
|
684
|
+
# * `hour`: an integer hour in the range `0..23`.
|
|
685
|
+
# * `min`: an integer minute in the range `0..59`.
|
|
686
|
+
# * `sec` is the number of seconds (Integer, Float, or Rational) in the range
|
|
687
|
+
# `0..60`.
|
|
688
|
+
# * `zone`: a timezone, which may be:
|
|
689
|
+
# * A string offset from UTC.
|
|
690
|
+
# * A single letter offset from UTC, in the range `'A'..'Z'`, `'J'` (the
|
|
691
|
+
# so-called military timezone) excluded.
|
|
692
|
+
# * An integer number of seconds.
|
|
693
|
+
# * A timezone object; see [Timezone
|
|
694
|
+
# Argument](#class-Time-label-Timezone+Argument) for details.
|
|
413
695
|
#
|
|
414
|
-
#
|
|
415
|
-
# t1 = Time.new(2007,11,1,15,25,0, "+09:00") # JST (Narita)
|
|
416
|
-
# t2 = Time.new(2007,11,1,12, 5,0, "-05:00") # CDT (Minneapolis)
|
|
417
|
-
# t3 = Time.new(2007,11,1,13,25,0, "-05:00") # CDT (Minneapolis)
|
|
418
|
-
# t4 = Time.new(2007,11,1,16,53,0, "-04:00") # EDT (Charlotte)
|
|
419
|
-
# t5 = Time.new(2007,11,5, 9,24,0, "-05:00") # EST (Charlotte)
|
|
420
|
-
# t6 = Time.new(2007,11,5,11,21,0, "-05:00") # EST (Detroit)
|
|
421
|
-
# t7 = Time.new(2007,11,5,13,45,0, "-05:00") # EST (Detroit)
|
|
422
|
-
# t8 = Time.new(2007,11,6,17,10,0, "+09:00") # JST (Narita)
|
|
423
|
-
# (t2-t1)/3600.0 #=> 10.666666666666666
|
|
424
|
-
# (t4-t3)/3600.0 #=> 2.466666666666667
|
|
425
|
-
# (t6-t5)/3600.0 #=> 1.95
|
|
426
|
-
# (t8-t7)/3600.0 #=> 13.416666666666666
|
|
696
|
+
# * `in: zone`: a timezone *zone*, which may be as above.
|
|
427
697
|
#
|
|
428
|
-
def initialize: (?Integer
|
|
698
|
+
def initialize: (?Integer? year, ?Integer? month, ?Integer? day, ?Integer? hour, ?Integer? min, ?Numeric? sec, ?String | Integer | nil) -> void
|
|
699
|
+
| (?Integer? year, ?Integer? month, ?Integer? day, ?Integer? hour, ?Integer? min, ?Numeric? sec, in: String | Integer | nil) -> void
|
|
429
700
|
|
|
701
|
+
# <!--
|
|
702
|
+
# rdoc-file=time.c
|
|
703
|
+
# - time.inspect -> string
|
|
704
|
+
# -->
|
|
430
705
|
# Returns a detailed string representing *time*. Unlike to_s, preserves
|
|
431
|
-
#
|
|
706
|
+
# subsecond in the representation for easier debugging.
|
|
432
707
|
#
|
|
433
708
|
# t = Time.now
|
|
434
709
|
# t.inspect #=> "2012-11-10 18:16:12.261257655 +0100"
|
|
@@ -439,6 +714,11 @@ class Time < Object
|
|
|
439
714
|
#
|
|
440
715
|
def inspect: () -> String
|
|
441
716
|
|
|
717
|
+
# <!--
|
|
718
|
+
# rdoc-file=time.c
|
|
719
|
+
# - time.isdst -> true or false
|
|
720
|
+
# - time.dst? -> true or false
|
|
721
|
+
# -->
|
|
442
722
|
# Returns `true` if *time* occurs during Daylight Saving Time in its time zone.
|
|
443
723
|
#
|
|
444
724
|
# # CST6CDT:
|
|
@@ -459,6 +739,11 @@ class Time < Object
|
|
|
459
739
|
#
|
|
460
740
|
def isdst: () -> bool
|
|
461
741
|
|
|
742
|
+
# <!--
|
|
743
|
+
# rdoc-file=time.c
|
|
744
|
+
# - time.localtime -> time
|
|
745
|
+
# - time.localtime(utc_offset) -> time
|
|
746
|
+
# -->
|
|
462
747
|
# Converts *time* to local time (using the local time zone in effect at the
|
|
463
748
|
# creation time of *time*) modifying the receiver.
|
|
464
749
|
#
|
|
@@ -478,7 +763,12 @@ class Time < Object
|
|
|
478
763
|
#
|
|
479
764
|
def localtime: (?String utc_offset) -> Time
|
|
480
765
|
|
|
481
|
-
#
|
|
766
|
+
# <!--
|
|
767
|
+
# rdoc-file=time.c
|
|
768
|
+
# - time.day -> integer
|
|
769
|
+
# - time.mday -> integer
|
|
770
|
+
# -->
|
|
771
|
+
# Returns the day of the month (1..31) for *time*.
|
|
482
772
|
#
|
|
483
773
|
# t = Time.now #=> 2007-11-19 08:27:03 -0600
|
|
484
774
|
# t.day #=> 19
|
|
@@ -486,6 +776,10 @@ class Time < Object
|
|
|
486
776
|
#
|
|
487
777
|
def mday: () -> Integer
|
|
488
778
|
|
|
779
|
+
# <!--
|
|
780
|
+
# rdoc-file=time.c
|
|
781
|
+
# - time.min -> integer
|
|
782
|
+
# -->
|
|
489
783
|
# Returns the minute of the hour (0..59) for *time*.
|
|
490
784
|
#
|
|
491
785
|
# t = Time.now #=> 2007-11-19 08:25:51 -0600
|
|
@@ -493,6 +787,11 @@ class Time < Object
|
|
|
493
787
|
#
|
|
494
788
|
def min: () -> Integer
|
|
495
789
|
|
|
790
|
+
# <!--
|
|
791
|
+
# rdoc-file=time.c
|
|
792
|
+
# - time.mon -> integer
|
|
793
|
+
# - time.month -> integer
|
|
794
|
+
# -->
|
|
496
795
|
# Returns the month of the year (1..12) for *time*.
|
|
497
796
|
#
|
|
498
797
|
# t = Time.now #=> 2007-11-19 08:27:30 -0600
|
|
@@ -501,6 +800,10 @@ class Time < Object
|
|
|
501
800
|
#
|
|
502
801
|
def mon: () -> Integer
|
|
503
802
|
|
|
803
|
+
# <!--
|
|
804
|
+
# rdoc-file=time.c
|
|
805
|
+
# - time.monday? -> true or false
|
|
806
|
+
# -->
|
|
504
807
|
# Returns `true` if *time* represents Monday.
|
|
505
808
|
#
|
|
506
809
|
# t = Time.local(2003, 8, 4) #=> 2003-08-04 00:00:00 -0500
|
|
@@ -508,48 +811,55 @@ class Time < Object
|
|
|
508
811
|
#
|
|
509
812
|
def monday?: () -> bool
|
|
510
813
|
|
|
511
|
-
#
|
|
814
|
+
# <!-- rdoc-file=time.c -->
|
|
815
|
+
# Returns the number of nanoseconds for the subsecond part of *time*. The result
|
|
816
|
+
# is a non-negative integer less than 10**9.
|
|
512
817
|
#
|
|
513
|
-
# t = Time.now #=>
|
|
514
|
-
#
|
|
515
|
-
# t.nsec #=> 536151406
|
|
818
|
+
# t = Time.now #=> 2020-07-20 22:07:10.963933942 +0900
|
|
819
|
+
# t.nsec #=> 963933942
|
|
516
820
|
#
|
|
517
|
-
#
|
|
518
|
-
# not accurate enough to represent the exact number of nanoseconds since the
|
|
519
|
-
# Epoch.
|
|
821
|
+
# If *time* has fraction of nanosecond (such as picoseconds), it is truncated.
|
|
520
822
|
#
|
|
521
|
-
#
|
|
823
|
+
# t = Time.new(2000,1,1,0,0,0.666_777_888_999r)
|
|
824
|
+
# t.nsec #=> 666777888
|
|
825
|
+
#
|
|
826
|
+
# Time#subsec can be used to obtain the subsecond part exactly.
|
|
522
827
|
#
|
|
523
828
|
def nsec: () -> Integer
|
|
524
829
|
|
|
525
|
-
#
|
|
526
|
-
#
|
|
527
|
-
#
|
|
528
|
-
#
|
|
529
|
-
#
|
|
830
|
+
# <!--
|
|
831
|
+
# rdoc-file=time.c
|
|
832
|
+
# - time.round([ndigits]) -> new_time
|
|
833
|
+
# -->
|
|
834
|
+
# Rounds subsecond to a given precision in decimal digits (0 digits by default).
|
|
835
|
+
# It returns a new Time object. `ndigits` should be zero or a positive integer.
|
|
530
836
|
#
|
|
531
837
|
# t = Time.utc(2010,3,30, 5,43,25.123456789r)
|
|
532
|
-
# t
|
|
533
|
-
# t.round
|
|
534
|
-
# t.round(0)
|
|
535
|
-
# t.round(1)
|
|
536
|
-
# t.round(2)
|
|
537
|
-
# t.round(3)
|
|
538
|
-
# t.round(4)
|
|
838
|
+
# t #=> 2010-03-30 05:43:25.123456789 UTC
|
|
839
|
+
# t.round #=> 2010-03-30 05:43:25 UTC
|
|
840
|
+
# t.round(0) #=> 2010-03-30 05:43:25 UTC
|
|
841
|
+
# t.round(1) #=> 2010-03-30 05:43:25.1 UTC
|
|
842
|
+
# t.round(2) #=> 2010-03-30 05:43:25.12 UTC
|
|
843
|
+
# t.round(3) #=> 2010-03-30 05:43:25.123 UTC
|
|
844
|
+
# t.round(4) #=> 2010-03-30 05:43:25.1235 UTC
|
|
539
845
|
#
|
|
540
846
|
# t = Time.utc(1999,12,31, 23,59,59)
|
|
541
|
-
# (t + 0.4).round
|
|
542
|
-
# (t + 0.49).round
|
|
543
|
-
# (t + 0.5).round
|
|
544
|
-
# (t + 1.4).round
|
|
545
|
-
# (t + 1.49).round
|
|
546
|
-
# (t + 1.5).round
|
|
847
|
+
# (t + 0.4).round #=> 1999-12-31 23:59:59 UTC
|
|
848
|
+
# (t + 0.49).round #=> 1999-12-31 23:59:59 UTC
|
|
849
|
+
# (t + 0.5).round #=> 2000-01-01 00:00:00 UTC
|
|
850
|
+
# (t + 1.4).round #=> 2000-01-01 00:00:00 UTC
|
|
851
|
+
# (t + 1.49).round #=> 2000-01-01 00:00:00 UTC
|
|
852
|
+
# (t + 1.5).round #=> 2000-01-01 00:00:01 UTC
|
|
547
853
|
#
|
|
548
|
-
# t = Time.utc(1999,12,31, 23,59,59)
|
|
549
|
-
# (t + 0.123456789).round(4).iso8601(6) #=>
|
|
854
|
+
# t = Time.utc(1999,12,31, 23,59,59) #=> 1999-12-31 23:59:59 UTC
|
|
855
|
+
# (t + 0.123456789).round(4).iso8601(6) #=> 1999-12-31 23:59:59.1235 UTC
|
|
550
856
|
#
|
|
551
857
|
def round: (?Integer arg0) -> Time
|
|
552
858
|
|
|
859
|
+
# <!--
|
|
860
|
+
# rdoc-file=time.c
|
|
861
|
+
# - time.saturday? -> true or false
|
|
862
|
+
# -->
|
|
553
863
|
# Returns `true` if *time* represents Saturday.
|
|
554
864
|
#
|
|
555
865
|
# t = Time.local(2006, 6, 10) #=> 2006-06-10 00:00:00 -0500
|
|
@@ -557,16 +867,24 @@ class Time < Object
|
|
|
557
867
|
#
|
|
558
868
|
def saturday?: () -> bool
|
|
559
869
|
|
|
870
|
+
# <!--
|
|
871
|
+
# rdoc-file=time.c
|
|
872
|
+
# - time.sec -> integer
|
|
873
|
+
# -->
|
|
560
874
|
# Returns the second of the minute (0..60) for *time*.
|
|
561
875
|
#
|
|
562
876
|
# **Note:** Seconds range from zero to 60 to allow the system to inject leap
|
|
563
|
-
# seconds. See
|
|
877
|
+
# seconds. See https://en.wikipedia.org/wiki/Leap_second for further details.
|
|
564
878
|
#
|
|
565
879
|
# t = Time.now #=> 2007-11-19 08:25:02 -0600
|
|
566
880
|
# t.sec #=> 2
|
|
567
881
|
#
|
|
568
882
|
def sec: () -> Integer
|
|
569
883
|
|
|
884
|
+
# <!--
|
|
885
|
+
# rdoc-file=time.c
|
|
886
|
+
# - time.strftime( string ) -> string
|
|
887
|
+
# -->
|
|
570
888
|
# Formats *time* according to the directives in the given format string.
|
|
571
889
|
#
|
|
572
890
|
# The directives begin with a percent (%) character. Any text not listed as a
|
|
@@ -743,21 +1061,31 @@ class Time < Object
|
|
|
743
1061
|
#
|
|
744
1062
|
def strftime: (String arg0) -> String
|
|
745
1063
|
|
|
746
|
-
#
|
|
1064
|
+
# <!--
|
|
1065
|
+
# rdoc-file=time.c
|
|
1066
|
+
# - time.subsec -> number
|
|
1067
|
+
# -->
|
|
1068
|
+
# Returns the subsecond for *time*.
|
|
747
1069
|
#
|
|
748
1070
|
# The return value can be a rational number.
|
|
749
1071
|
#
|
|
750
|
-
# t = Time.now #=>
|
|
751
|
-
#
|
|
752
|
-
# t.subsec #=> (94056401/100000000)
|
|
1072
|
+
# t = Time.now #=> 2020-07-20 15:40:26.867462289 +0900
|
|
1073
|
+
# t.subsec #=> (867462289/1000000000)
|
|
753
1074
|
#
|
|
754
|
-
#
|
|
755
|
-
#
|
|
1075
|
+
# t = Time.now #=> 2020-07-20 15:40:50.313828595 +0900
|
|
1076
|
+
# t.subsec #=> (62765719/200000000)
|
|
756
1077
|
#
|
|
757
|
-
#
|
|
1078
|
+
# t = Time.new(2000,1,1,2,3,4) #=> 2000-01-01 02:03:04 +0900
|
|
1079
|
+
# t.subsec #=> 0
|
|
1080
|
+
#
|
|
1081
|
+
# Time.new(2000,1,1,0,0,1/3r,"UTC").subsec #=> (1/3)
|
|
758
1082
|
#
|
|
759
1083
|
def subsec: () -> Numeric
|
|
760
1084
|
|
|
1085
|
+
# <!--
|
|
1086
|
+
# rdoc-file=time.c
|
|
1087
|
+
# - time.sunday? -> true or false
|
|
1088
|
+
# -->
|
|
761
1089
|
# Returns `true` if *time* represents Sunday.
|
|
762
1090
|
#
|
|
763
1091
|
# t = Time.local(1990, 4, 1) #=> 1990-04-01 00:00:00 -0600
|
|
@@ -765,6 +1093,10 @@ class Time < Object
|
|
|
765
1093
|
#
|
|
766
1094
|
def sunday?: () -> bool
|
|
767
1095
|
|
|
1096
|
+
# <!--
|
|
1097
|
+
# rdoc-file=time.c
|
|
1098
|
+
# - time.thursday? -> true or false
|
|
1099
|
+
# -->
|
|
768
1100
|
# Returns `true` if *time* represents Thursday.
|
|
769
1101
|
#
|
|
770
1102
|
# t = Time.local(1995, 12, 21) #=> 1995-12-21 00:00:00 -0600
|
|
@@ -772,12 +1104,16 @@ class Time < Object
|
|
|
772
1104
|
#
|
|
773
1105
|
def thursday?: () -> bool
|
|
774
1106
|
|
|
1107
|
+
# <!--
|
|
1108
|
+
# rdoc-file=time.c
|
|
1109
|
+
# - time.to_a -> array
|
|
1110
|
+
# -->
|
|
775
1111
|
# Returns a ten-element *array* of values for *time*:
|
|
776
1112
|
#
|
|
777
1113
|
# [sec, min, hour, day, month, year, wday, yday, isdst, zone]
|
|
778
1114
|
#
|
|
779
1115
|
# See the individual methods for an explanation of the valid ranges of each
|
|
780
|
-
# value. The ten elements can be passed directly to Time
|
|
1116
|
+
# value. The ten elements can be passed directly to Time.utc or Time.local to
|
|
781
1117
|
# create a new Time object.
|
|
782
1118
|
#
|
|
783
1119
|
# t = Time.now #=> 2007-11-19 08:36:01 -0600
|
|
@@ -785,37 +1121,59 @@ class Time < Object
|
|
|
785
1121
|
#
|
|
786
1122
|
def to_a: () -> [ Integer, Integer, Integer, Integer, Integer, Integer, Integer, Integer, bool, String ]
|
|
787
1123
|
|
|
1124
|
+
# <!--
|
|
1125
|
+
# rdoc-file=time.c
|
|
1126
|
+
# - time.to_f -> float
|
|
1127
|
+
# -->
|
|
788
1128
|
# Returns the value of *time* as a floating point number of seconds since the
|
|
789
|
-
# Epoch.
|
|
1129
|
+
# Epoch. The return value approximate the exact value in the Time object because
|
|
1130
|
+
# floating point numbers cannot represent all rational numbers exactly.
|
|
790
1131
|
#
|
|
791
|
-
# t = Time.now
|
|
792
|
-
#
|
|
793
|
-
# t.to_i #=>
|
|
1132
|
+
# t = Time.now #=> 2020-07-20 22:00:29.38740268 +0900
|
|
1133
|
+
# t.to_f #=> 1595250029.3874028
|
|
1134
|
+
# t.to_i #=> 1595250029
|
|
794
1135
|
#
|
|
795
1136
|
# Note that IEEE 754 double is not accurate enough to represent the exact number
|
|
796
|
-
# of nanoseconds since the Epoch.
|
|
1137
|
+
# of nanoseconds since the Epoch. (IEEE 754 double has 53bit mantissa. So it can
|
|
1138
|
+
# represent exact number of nanoseconds only in `2 ** 53 / 1_000_000_000 / 60 /
|
|
1139
|
+
# 60 / 24 = 104.2` days.) When Ruby uses a nanosecond-resolution clock function,
|
|
1140
|
+
# such as `clock_gettime` of POSIX, to obtain the current time, Time#to_f can
|
|
1141
|
+
# lose information of a Time object created with `Time.now`.
|
|
797
1142
|
#
|
|
798
1143
|
def to_f: () -> Float
|
|
799
1144
|
|
|
1145
|
+
# <!--
|
|
1146
|
+
# rdoc-file=time.c
|
|
1147
|
+
# - time.to_i -> int
|
|
1148
|
+
# - time.tv_sec -> int
|
|
1149
|
+
# -->
|
|
800
1150
|
# Returns the value of *time* as an integer number of seconds since the Epoch.
|
|
801
1151
|
#
|
|
802
|
-
#
|
|
803
|
-
#
|
|
804
|
-
# t.
|
|
1152
|
+
# If *time* contains subsecond, they are truncated.
|
|
1153
|
+
#
|
|
1154
|
+
# t = Time.now #=> 2020-07-21 01:41:29.746012609 +0900
|
|
1155
|
+
# t.to_i #=> 1595263289
|
|
805
1156
|
#
|
|
806
1157
|
def to_i: () -> Integer
|
|
807
1158
|
|
|
1159
|
+
# <!--
|
|
1160
|
+
# rdoc-file=time.c
|
|
1161
|
+
# - time.to_r -> a_rational
|
|
1162
|
+
# -->
|
|
808
1163
|
# Returns the value of *time* as a rational number of seconds since the Epoch.
|
|
809
1164
|
#
|
|
810
|
-
# t = Time.now
|
|
811
|
-
# t.to_r #=> (
|
|
1165
|
+
# t = Time.now #=> 2020-07-20 22:03:45.212167333 +0900
|
|
1166
|
+
# t.to_r #=> (1595250225212167333/1000000000)
|
|
812
1167
|
#
|
|
813
|
-
# This
|
|
814
|
-
#
|
|
815
|
-
# another Epoch.
|
|
1168
|
+
# This method is intended to be used to get an accurate value representing the
|
|
1169
|
+
# seconds (including subsecond) since the Epoch.
|
|
816
1170
|
#
|
|
817
1171
|
def to_r: () -> Rational
|
|
818
1172
|
|
|
1173
|
+
# <!--
|
|
1174
|
+
# rdoc-file=time.c
|
|
1175
|
+
# - time.to_s -> string
|
|
1176
|
+
# -->
|
|
819
1177
|
# Returns a string representing *time*. Equivalent to calling #strftime with the
|
|
820
1178
|
# appropriate format string.
|
|
821
1179
|
#
|
|
@@ -828,6 +1186,10 @@ class Time < Object
|
|
|
828
1186
|
#
|
|
829
1187
|
def to_s: () -> String
|
|
830
1188
|
|
|
1189
|
+
# <!--
|
|
1190
|
+
# rdoc-file=time.c
|
|
1191
|
+
# - time.tuesday? -> true or false
|
|
1192
|
+
# -->
|
|
831
1193
|
# Returns `true` if *time* represents Tuesday.
|
|
832
1194
|
#
|
|
833
1195
|
# t = Time.local(1991, 2, 19) #=> 1991-02-19 00:00:00 -0600
|
|
@@ -835,44 +1197,73 @@ class Time < Object
|
|
|
835
1197
|
#
|
|
836
1198
|
def tuesday?: () -> bool
|
|
837
1199
|
|
|
838
|
-
#
|
|
1200
|
+
# <!--
|
|
1201
|
+
# rdoc-file=time.c
|
|
1202
|
+
# - time.nsec -> int
|
|
1203
|
+
# - time.tv_nsec -> int
|
|
1204
|
+
# -->
|
|
1205
|
+
# Returns the number of nanoseconds for the subsecond part of *time*. The result
|
|
1206
|
+
# is a non-negative integer less than 10**9.
|
|
839
1207
|
#
|
|
840
|
-
# t = Time.now #=>
|
|
841
|
-
#
|
|
842
|
-
# t.nsec #=> 536151406
|
|
1208
|
+
# t = Time.now #=> 2020-07-20 22:07:10.963933942 +0900
|
|
1209
|
+
# t.nsec #=> 963933942
|
|
843
1210
|
#
|
|
844
|
-
#
|
|
845
|
-
# not accurate enough to represent the exact number of nanoseconds since the
|
|
846
|
-
# Epoch.
|
|
1211
|
+
# If *time* has fraction of nanosecond (such as picoseconds), it is truncated.
|
|
847
1212
|
#
|
|
848
|
-
#
|
|
1213
|
+
# t = Time.new(2000,1,1,0,0,0.666_777_888_999r)
|
|
1214
|
+
# t.nsec #=> 666777888
|
|
1215
|
+
#
|
|
1216
|
+
# Time#subsec can be used to obtain the subsecond part exactly.
|
|
849
1217
|
#
|
|
850
1218
|
def tv_nsec: () -> Numeric
|
|
851
1219
|
|
|
1220
|
+
# <!-- rdoc-file=time.c -->
|
|
852
1221
|
# Returns the value of *time* as an integer number of seconds since the Epoch.
|
|
853
1222
|
#
|
|
854
|
-
#
|
|
855
|
-
#
|
|
856
|
-
# t.
|
|
1223
|
+
# If *time* contains subsecond, they are truncated.
|
|
1224
|
+
#
|
|
1225
|
+
# t = Time.now #=> 2020-07-21 01:41:29.746012609 +0900
|
|
1226
|
+
# t.to_i #=> 1595263289
|
|
857
1227
|
#
|
|
858
1228
|
def tv_sec: () -> Numeric
|
|
859
1229
|
|
|
860
|
-
#
|
|
1230
|
+
# <!--
|
|
1231
|
+
# rdoc-file=time.c
|
|
1232
|
+
# - time.usec -> int
|
|
1233
|
+
# - time.tv_usec -> int
|
|
1234
|
+
# -->
|
|
1235
|
+
# Returns the number of microseconds for the subsecond part of *time*. The
|
|
1236
|
+
# result is a non-negative integer less than 10**6.
|
|
1237
|
+
#
|
|
1238
|
+
# t = Time.now #=> 2020-07-20 22:05:58.459785953 +0900
|
|
1239
|
+
# t.usec #=> 459785
|
|
1240
|
+
#
|
|
1241
|
+
# If *time* has fraction of microsecond (such as nanoseconds), it is truncated.
|
|
861
1242
|
#
|
|
862
|
-
# t = Time.
|
|
863
|
-
#
|
|
864
|
-
#
|
|
1243
|
+
# t = Time.new(2000,1,1,0,0,0.666_777_888_999r)
|
|
1244
|
+
# t.usec #=> 666777
|
|
1245
|
+
#
|
|
1246
|
+
# Time#subsec can be used to obtain the subsecond part exactly.
|
|
865
1247
|
#
|
|
866
1248
|
def tv_usec: () -> Numeric
|
|
867
1249
|
|
|
868
|
-
#
|
|
1250
|
+
# <!-- rdoc-file=time.c -->
|
|
1251
|
+
# Returns the number of microseconds for the subsecond part of *time*. The
|
|
1252
|
+
# result is a non-negative integer less than 10**6.
|
|
1253
|
+
#
|
|
1254
|
+
# t = Time.now #=> 2020-07-20 22:05:58.459785953 +0900
|
|
1255
|
+
# t.usec #=> 459785
|
|
869
1256
|
#
|
|
870
|
-
#
|
|
871
|
-
#
|
|
872
|
-
# t.
|
|
1257
|
+
# If *time* has fraction of microsecond (such as nanoseconds), it is truncated.
|
|
1258
|
+
#
|
|
1259
|
+
# t = Time.new(2000,1,1,0,0,0.666_777_888_999r)
|
|
1260
|
+
# t.usec #=> 666777
|
|
1261
|
+
#
|
|
1262
|
+
# Time#subsec can be used to obtain the subsecond part exactly.
|
|
873
1263
|
#
|
|
874
1264
|
def usec: () -> Numeric
|
|
875
1265
|
|
|
1266
|
+
# <!-- rdoc-file=time.c -->
|
|
876
1267
|
# Converts *time* to UTC (GMT), modifying the receiver.
|
|
877
1268
|
#
|
|
878
1269
|
# t = Time.now #=> 2007-11-19 08:18:31 -0600
|
|
@@ -887,6 +1278,11 @@ class Time < Object
|
|
|
887
1278
|
#
|
|
888
1279
|
def utc: () -> Time
|
|
889
1280
|
|
|
1281
|
+
# <!--
|
|
1282
|
+
# rdoc-file=time.c
|
|
1283
|
+
# - time.utc? -> true or false
|
|
1284
|
+
# - time.gmt? -> true or false
|
|
1285
|
+
# -->
|
|
890
1286
|
# Returns `true` if *time* represents a time in UTC (GMT).
|
|
891
1287
|
#
|
|
892
1288
|
# t = Time.now #=> 2007-11-19 08:15:23 -0600
|
|
@@ -901,6 +1297,7 @@ class Time < Object
|
|
|
901
1297
|
#
|
|
902
1298
|
def utc?: () -> bool
|
|
903
1299
|
|
|
1300
|
+
# <!-- rdoc-file=time.c -->
|
|
904
1301
|
# Returns the offset in seconds between the timezone of *time* and UTC.
|
|
905
1302
|
#
|
|
906
1303
|
# t = Time.gm(2000,1,1,20,15,1) #=> 2000-01-01 20:15:01 UTC
|
|
@@ -910,6 +1307,10 @@ class Time < Object
|
|
|
910
1307
|
#
|
|
911
1308
|
def utc_offset: () -> Integer
|
|
912
1309
|
|
|
1310
|
+
# <!--
|
|
1311
|
+
# rdoc-file=time.c
|
|
1312
|
+
# - time.wday -> integer
|
|
1313
|
+
# -->
|
|
913
1314
|
# Returns an integer representing the day of the week, 0..6, with Sunday == 0.
|
|
914
1315
|
#
|
|
915
1316
|
# t = Time.now #=> 2007-11-20 02:35:35 -0600
|
|
@@ -924,6 +1325,10 @@ class Time < Object
|
|
|
924
1325
|
#
|
|
925
1326
|
def wday: () -> Integer
|
|
926
1327
|
|
|
1328
|
+
# <!--
|
|
1329
|
+
# rdoc-file=time.c
|
|
1330
|
+
# - time.wednesday? -> true or false
|
|
1331
|
+
# -->
|
|
927
1332
|
# Returns `true` if *time* represents Wednesday.
|
|
928
1333
|
#
|
|
929
1334
|
# t = Time.local(1993, 2, 24) #=> 1993-02-24 00:00:00 -0600
|
|
@@ -931,6 +1336,10 @@ class Time < Object
|
|
|
931
1336
|
#
|
|
932
1337
|
def wednesday?: () -> bool
|
|
933
1338
|
|
|
1339
|
+
# <!--
|
|
1340
|
+
# rdoc-file=time.c
|
|
1341
|
+
# - time.yday -> integer
|
|
1342
|
+
# -->
|
|
934
1343
|
# Returns an integer representing the day of the year, 1..366.
|
|
935
1344
|
#
|
|
936
1345
|
# t = Time.now #=> 2007-11-19 08:32:31 -0600
|
|
@@ -938,6 +1347,10 @@ class Time < Object
|
|
|
938
1347
|
#
|
|
939
1348
|
def yday: () -> Integer
|
|
940
1349
|
|
|
1350
|
+
# <!--
|
|
1351
|
+
# rdoc-file=time.c
|
|
1352
|
+
# - time.year -> integer
|
|
1353
|
+
# -->
|
|
941
1354
|
# Returns the year for *time* (including the century).
|
|
942
1355
|
#
|
|
943
1356
|
# t = Time.now #=> 2007-11-19 08:27:51 -0600
|
|
@@ -945,6 +1358,10 @@ class Time < Object
|
|
|
945
1358
|
#
|
|
946
1359
|
def year: () -> Integer
|
|
947
1360
|
|
|
1361
|
+
# <!--
|
|
1362
|
+
# rdoc-file=time.c
|
|
1363
|
+
# - time.zone -> string or timezone
|
|
1364
|
+
# -->
|
|
948
1365
|
# Returns the name of the time zone used for *time*. As of Ruby 1.8, returns
|
|
949
1366
|
# ``UTC'' rather than ``GMT'' for UTC times.
|
|
950
1367
|
#
|
|
@@ -961,6 +1378,12 @@ class Time < Object
|
|
|
961
1378
|
#
|
|
962
1379
|
def self.mktime: (Integer year, ?Integer | String month, ?Integer day, ?Integer hour, ?Integer min, ?Numeric sec, ?Numeric usec_with_frac) -> Time
|
|
963
1380
|
|
|
1381
|
+
# <!--
|
|
1382
|
+
# rdoc-file=time.c
|
|
1383
|
+
# - time.gmt_offset -> integer
|
|
1384
|
+
# - time.gmtoff -> integer
|
|
1385
|
+
# - time.utc_offset -> integer
|
|
1386
|
+
# -->
|
|
964
1387
|
# Returns the offset in seconds between the timezone of *time* and UTC.
|
|
965
1388
|
#
|
|
966
1389
|
# t = Time.gm(2000,1,1,20,15,1) #=> 2000-01-01 20:15:01 UTC
|
|
@@ -970,6 +1393,7 @@ class Time < Object
|
|
|
970
1393
|
#
|
|
971
1394
|
def gmtoff: () -> Integer
|
|
972
1395
|
|
|
1396
|
+
# <!-- rdoc-file=time.c -->
|
|
973
1397
|
# Returns the month of the year (1..12) for *time*.
|
|
974
1398
|
#
|
|
975
1399
|
# t = Time.now #=> 2007-11-19 08:27:30 -0600
|
|
@@ -978,55 +1402,57 @@ class Time < Object
|
|
|
978
1402
|
#
|
|
979
1403
|
def month: () -> Integer
|
|
980
1404
|
|
|
981
|
-
#
|
|
982
|
-
#
|
|
983
|
-
#
|
|
984
|
-
#
|
|
985
|
-
#
|
|
1405
|
+
# <!--
|
|
1406
|
+
# rdoc-file=time.c
|
|
1407
|
+
# - time.floor([ndigits]) -> new_time
|
|
1408
|
+
# -->
|
|
1409
|
+
# Floors subsecond to a given precision in decimal digits (0 digits by default).
|
|
1410
|
+
# It returns a new Time object. `ndigits` should be zero or a positive integer.
|
|
986
1411
|
#
|
|
987
1412
|
# t = Time.utc(2010,3,30, 5,43,25.123456789r)
|
|
988
|
-
# t
|
|
989
|
-
# t.floor
|
|
990
|
-
# t.floor(0)
|
|
991
|
-
# t.floor(1)
|
|
992
|
-
# t.floor(2)
|
|
993
|
-
# t.floor(3)
|
|
994
|
-
# t.floor(4)
|
|
1413
|
+
# t #=> 2010-03-30 05:43:25.123456789 UTC
|
|
1414
|
+
# t.floor #=> 2010-03-30 05:43:25 UTC
|
|
1415
|
+
# t.floor(0) #=> 2010-03-30 05:43:25 UTC
|
|
1416
|
+
# t.floor(1) #=> 2010-03-30 05:43:25.1 UTC
|
|
1417
|
+
# t.floor(2) #=> 2010-03-30 05:43:25.12 UTC
|
|
1418
|
+
# t.floor(3) #=> 2010-03-30 05:43:25.123 UTC
|
|
1419
|
+
# t.floor(4) #=> 2010-03-30 05:43:25.1234 UTC
|
|
995
1420
|
#
|
|
996
1421
|
# t = Time.utc(1999,12,31, 23,59,59)
|
|
997
|
-
# (t + 0.4).floor
|
|
998
|
-
# (t + 0.9).floor
|
|
999
|
-
# (t + 1.4).floor
|
|
1000
|
-
# (t + 1.9).floor
|
|
1422
|
+
# (t + 0.4).floor #=> 1999-12-31 23:59:59 UTC
|
|
1423
|
+
# (t + 0.9).floor #=> 1999-12-31 23:59:59 UTC
|
|
1424
|
+
# (t + 1.4).floor #=> 2000-01-01 00:00:00 UTC
|
|
1425
|
+
# (t + 1.9).floor #=> 2000-01-01 00:00:00 UTC
|
|
1001
1426
|
#
|
|
1002
1427
|
# t = Time.utc(1999,12,31, 23,59,59)
|
|
1003
|
-
# (t + 0.123456789).floor(4)
|
|
1428
|
+
# (t + 0.123456789).floor(4) #=> 1999-12-31 23:59:59.1234 UTC
|
|
1004
1429
|
#
|
|
1005
1430
|
def floor: (?Integer ndigits) -> Time
|
|
1006
1431
|
|
|
1007
|
-
#
|
|
1008
|
-
#
|
|
1009
|
-
#
|
|
1010
|
-
#
|
|
1011
|
-
#
|
|
1432
|
+
# <!--
|
|
1433
|
+
# rdoc-file=time.c
|
|
1434
|
+
# - time.ceil([ndigits]) -> new_time
|
|
1435
|
+
# -->
|
|
1436
|
+
# Ceils subsecond to a given precision in decimal digits (0 digits by default).
|
|
1437
|
+
# It returns a new Time object. `ndigits` should be zero or a positive integer.
|
|
1012
1438
|
#
|
|
1013
1439
|
# t = Time.utc(2010,3,30, 5,43,25.0123456789r)
|
|
1014
|
-
# t
|
|
1015
|
-
# t.ceil
|
|
1016
|
-
# t.ceil(0)
|
|
1017
|
-
# t.ceil(1)
|
|
1018
|
-
# t.ceil(2)
|
|
1019
|
-
# t.ceil(3)
|
|
1020
|
-
# t.ceil(4)
|
|
1440
|
+
# t #=> 2010-03-30 05:43:25 123456789/10000000000 UTC
|
|
1441
|
+
# t.ceil #=> 2010-03-30 05:43:26 UTC
|
|
1442
|
+
# t.ceil(0) #=> 2010-03-30 05:43:26 UTC
|
|
1443
|
+
# t.ceil(1) #=> 2010-03-30 05:43:25.1 UTC
|
|
1444
|
+
# t.ceil(2) #=> 2010-03-30 05:43:25.02 UTC
|
|
1445
|
+
# t.ceil(3) #=> 2010-03-30 05:43:25.013 UTC
|
|
1446
|
+
# t.ceil(4) #=> 2010-03-30 05:43:25.0124 UTC
|
|
1021
1447
|
#
|
|
1022
1448
|
# t = Time.utc(1999,12,31, 23,59,59)
|
|
1023
|
-
# (t + 0.4).ceil
|
|
1024
|
-
# (t + 0.9).ceil
|
|
1025
|
-
# (t + 1.4).ceil
|
|
1026
|
-
# (t + 1.9).ceil
|
|
1449
|
+
# (t + 0.4).ceil #=> 2000-01-01 00:00:00 UTC
|
|
1450
|
+
# (t + 0.9).ceil #=> 2000-01-01 00:00:00 UTC
|
|
1451
|
+
# (t + 1.4).ceil #=> 2000-01-01 00:00:01 UTC
|
|
1452
|
+
# (t + 1.9).ceil #=> 2000-01-01 00:00:01 UTC
|
|
1027
1453
|
#
|
|
1028
1454
|
# t = Time.utc(1999,12,31, 23,59,59)
|
|
1029
|
-
# (t + 0.123456789).ceil(4)
|
|
1455
|
+
# (t + 0.123456789).ceil(4) #=> 1999-12-31 23:59:59.1235 UTC
|
|
1030
1456
|
#
|
|
1031
1457
|
def ceil: (?Integer ndigits) -> Time
|
|
1032
1458
|
end
|