Книга: Программирование на языке Ruby
7.22. Преобразование часовых поясов
7.22. Преобразование часовых поясов
Обычно приходится работать только с двумя часовыми поясами: GMT (или UTC) и тем, в котором вы находитесь.
Метод gmtime
преобразует время к поясу GMT (модифицируя сам вызывающий объект). У него есть синоним utc
.
Может быть, вы думаете, что можно просто преобразовать момент времени в массив, подменить часовой пояс и выполнить обратное преобразование? Проблема в том, что все методы класса, к примеру local
и gm
(а также их синонимы mktime
и utc
), готовы создавать объект Time
только в предположении, что указано либо местное время, либо время по Гринвичу.
Есть обходной путь для преобразования часового пояса. Но предполагается, что вы заранее знаете разницу во времени. Взгляните на следующий фрагмент:
mississippi = Time.local(2000,11,13,9,35) # 9:35 am CST
california = mississippi - 2*3600 # Минус два часа.
time1 = mississippi.strftime("%X CST") # 09:35:00 CST
time2 = california.strftime("%X PST") # 07:35:00 PST
Спецификатор %x
в методе strftime
просто выводит время в формате hh:mm:ss
.
- 7.1. Определение текущего момента времени
- 7.2. Работа с конкретными датами (после точки отсчета)
- 7.3. Определение дня недели
- 7.4. Определение даты Пасхи
- 7.5. Вычисление n-ого дня недели в месяце
- 7.6. Преобразование из секунд в более крупные единицы
- 7.7. Вычисление промежутка времени, прошедшего от точки отсчета
- 7.8. Високосные секунды
- 7.9. Определение порядкового номера дня в году
- 7.10. Контроль даты и времени
- 7.11. Определение недели в году
- 7.12. Проверка года на високосность
- 7.13. Определение часового пояса
- 7.14. Манипулирование временем без даты
- 7.15 Сравнение моментов времени
- 7.16 Прибавление интервала к моменту времени
- 7.17. Вычисление разности между двумя моментами времени
- 7.18. Работа с конкретными датами (до точки отсчета)
- 7.19. Взаимные преобразования объектов Date, Time и DateTime
- 7.20. Извлечение даты и времени из строки
- 7.21. Форматирование и печать даты и времени
- 7.22. Преобразование часовых поясов
- 7.23. Определение числа дней в месяце
- 7.24. Разбиение месяца на недели
- 7.25. Заключение
- Преобразование XML в реляционную базу данных
- Преобразование строки в целое: stoi( )
- 7. Лекция: Преобразование типов
- Преобразование кодировок
- Преобразование WSDL-кода в программный код агента для клиента
- Преобразование в XSL-FO при помощи таблицы стилей XSLT
- Пример 12-44. Преобразование метров в мили
- Преобразование типов даты в CHAR(n) и VARCHAR(n)
- 7.12. Отображение структур и преобразование деревьев
- 9.7. Преобразование обычных адресов в данные широты и долготы
- 6.1.4. Преобразование разложенного времени в time_t
- Преобразование типов данных