Преобразование времени в UTC в тихоокеанское время - PullRequest
15 голосов
/ 09 июля 2010

Я получаю строку из внешнего метода с указанием времени и даты, например: "07/09/10 14:50" Можно ли каким-то образом преобразовать это время в рубине во «тихоокеанское время США», зная его время в формате UTC?с изменениями, учтенными в дате?Т.е. если разница во времени приводит к тому, что день будет другим.

Ответы [ 3 ]

41 голосов
/ 09 июля 2010

Поскольку кажется, что вы используете рельсы, у вас есть довольно много вариантов. Я предлагаю прочитать эту статью , в которой говорится о часовых поясах.

Чтобы преобразовать в PST, оба эти метода предназначены для рельсов. Не нужно заново изобретать колесо:

time = Time.parse("07/09/10 14:50")
time.in_time_zone("Pacific Time (US & Canada)")

Надеюсь, это поможет

ОБНОВЛЕНИЕ: рельсы могут попытаться стать умными и дать время, которое вы указываете в виде строки, часовой пояс. Чтобы время анализировалось как UTC, вам необходимо указать в строке:

time = Time.parse("07/09/10 14:50 UTC")
time.in_time_zone("Pacific Time (US & Canada)")
14 голосов
/ 09 июля 2010

Чтобы преобразовать строковую форму в объект даты или времени, вам нужно использовать strptime

require 'date'
require 'time'

my_time_string = "07/09/10 14:50"
to_datetime = DateTime.strptime(my_time_string, "%m/%d/%y %H:%M")    

utc_time = Time.parse(to_datetime.to_s).utc
pacific_time = utc_time + Time.zone_offset("PDT")

puts utc_time
puts pacific_time

Это чисто ruby, так что, скорее всего, есть несколько специфичных для rails методов, которые вы могли бы использовать специально для этогозадание, но это должно начать вас.

0 голосов
/ 01 апреля 2017

требуют 'времени'

Если вы хотите, чтобы тихоокеанское время вычиталось из времени, только 25200 секунд. Новая разница между тихоокеанским временем и временем по Гринвичу составляет 7 часов.

t = Time.parse ((Time.new-25200) .to_s)

Затем используйте strftime для форматирования так, как вам удобно.

помещает t.strftime ("% A% D в% I:% M"% р ")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...