Часовые пояса
Спецификаторы часовых поясов
Определенные методы Time принимают аргументы, определяющие часовой пояс:
-
Time.at: ключевой аргументin:. -
Time.new: позиционный аргументzoneили ключевой аргументin:. -
Time.now: ключевой аргументin:. -
Time#getlocal: позиционный аргументzone. -
Time#localtime: позиционный аргументzone.
Передаваемое значение в любом из этих случаев должно быть одним из следующих (каждое подробно описано ниже):
Смещения по часам/минутам
Значение зоны может быть строковым смещением от UTC в формате '+HH:MM' или '-HH:MM', где:
-
HH— двузначная цифра часа в диапазоне0..23. -
MM— двузначная цифра минуты в диапазоне0..59.
Примеры:
t = Time.utc(2000, 1, 1, 20, 15, 1) # => 2000-01-01 20:15:01 UTC Time.at(t, in: '-23:59') # => 1999-12-31 20:16:01 -2359 Time.at(t, in: '+23:59') # => 2000-01-02 20:14:01 +2359
Смещения с одной буквой
Значение зоны может быть буквой в диапазоне 'A'..'I' или 'K'..'Z'; см. Список военных часовых поясов:
t = Time.utc(2000, 1, 1, 20, 15, 1) # => 2000-01-01 20:15:01 UTC Time.at(t, in: 'A') # => 2000-01-01 21:15:01 +0100 Time.at(t, in: 'I') # => 2000-01-02 05:15:01 +0900 Time.at(t, in: 'K') # => 2000-01-02 06:15:01 +1000 Time.at(t, in: 'Y') # => 2000-01-01 08:15:01 -1200 Time.at(t, in: 'Z') # => 2000-01-01 20:15:01 UTC
Смещения в секундах
Значение зоны может быть целым числом секунд в диапазоне -86399..86399:
t = Time.utc(2000, 1, 1, 20, 15, 1) # => 2000-01-01 20:15:01 UTC Time.at(t, in: -86399) # => 1999-12-31 20:15:02 -235959 Time.at(t, in: 86399) # => 2000-01-02 20:15:00 +235959
Объекты часовых поясов
В большинстве случаев значение зоны может быть объектом, отвечающим на определенные методы часового пояса.
Исключения (объект часового пояса не разрешен):
Методы часового пояса:
-
local_to_utc:-
Вызывается при вызове
Time.newсо значениемtzв качестве позиционного аргументаzoneили ключевого аргументаin:. -
Аргумент: объект
Time::tm. -
Возвращает: объект типа Time в часовом поясе UTC.
-
-
utc_to_local:-
Вызывается при вызове
Time.atилиTime.nowсо значениемtzдля ключевого аргументаin:, а также при вызовеTime#getlocalилиTime#localtimeсо значениемtzдля позиционного аргументаzone. -
Аргумент: объект
Time::tm. -
Возвращает: объект типа Time в локальном часовом поясе.
-
Пользовательский класс часового пояса может иметь эти методы экземпляра, которые будут вызываться при их определении:
-
abbr:-
Вызывается при вызове
Time#strftimeс форматом, включающим%Z. -
Аргумент: объект
Time::tm. -
Возвращает: строковое сокращение имени часового пояса.
-
-
dst?:-
Вызывается при вызове
Time.atилиTime.nowсо значениемtzдля ключевого аргументаin:, а также при вызовеTime#getlocalилиTime#localtimeсо значениемtzдля позиционного аргументаzone. -
Аргумент: объект
Time::tm. -
Возвращает: является ли время летним временем.
-
-
name:-
Вызывается при вызове <tt>Marshal.dump(t)</tt>
-
Аргумент: нет.
-
Возвращает: строковое имя часового пояса.
-
Ruby Core © 1993–2022 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.