[DOC] Mention Time.find_timezone
method
This commit is contained in:
parent
2ecc372a5d
commit
0c0875fe60
@ -17,6 +17,7 @@ The value given with any of these must be one of the following
|
|||||||
- {Single-letter offset}[rdoc-ref:timezones.rdoc@Single-Letter+Offsets].
|
- {Single-letter offset}[rdoc-ref:timezones.rdoc@Single-Letter+Offsets].
|
||||||
- {Integer offset}[rdoc-ref:timezones.rdoc@Integer+Offsets].
|
- {Integer offset}[rdoc-ref:timezones.rdoc@Integer+Offsets].
|
||||||
- {Timezone object}[rdoc-ref:timezones.rdoc@Timezone+Objects].
|
- {Timezone object}[rdoc-ref:timezones.rdoc@Timezone+Objects].
|
||||||
|
- {Timezone name}[rdoc-ref:timezones.rdoc@Timezone+Names].
|
||||||
|
|
||||||
=== Hours/Minutes Offsets
|
=== Hours/Minutes Offsets
|
||||||
|
|
||||||
@ -102,3 +103,29 @@ which will be called if defined:
|
|||||||
- Called when <tt>Marshal.dump(t)</tt> is invoked
|
- Called when <tt>Marshal.dump(t)</tt> is invoked
|
||||||
- Argument: none.
|
- Argument: none.
|
||||||
- Returns: the string name of the timezone.
|
- Returns: the string name of the timezone.
|
||||||
|
|
||||||
|
=== Timezone Names
|
||||||
|
|
||||||
|
If the class (the receiver of class methods, or the class of the receiver
|
||||||
|
of instance methods) has `find_timezone` singleton method, this method is
|
||||||
|
called to achieve the corresponding timezone object from a timezone name.
|
||||||
|
|
||||||
|
For example, using {Timezone}[https://github.com/panthomakos/timezone]:
|
||||||
|
class TimeWithTimezone < Time
|
||||||
|
require 'timezone'
|
||||||
|
def self.find_timezone(z) = Timezone[z]
|
||||||
|
end
|
||||||
|
|
||||||
|
TimeWithTimezone.now(in: "America/New_York") #=> 2023-12-25 00:00:00 -0500
|
||||||
|
TimeWithTimezone.new("2023-12-25 America/New_York") #=> 2023-12-25 00:00:00 -0500
|
||||||
|
|
||||||
|
Or, using {TZInfo}[https://tzinfo.github.io]:
|
||||||
|
class TimeWithTZInfo < Time
|
||||||
|
require 'tzinfo'
|
||||||
|
def self.find_timezone(z) = TZInfo::Timezone.get(z)
|
||||||
|
end
|
||||||
|
|
||||||
|
TimeWithTZInfo.now(in: "America/New_York") #=> 2023-12-25 00:00:00 -0500
|
||||||
|
TimeWithTZInfo.new("2023-12-25 America/New_York") #=> 2023-12-25 00:00:00 -0500
|
||||||
|
|
||||||
|
You can define this method per subclasses, or on the toplevel `Time` class.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user