Вот то, что я придумал, используя гем tzinfo, как и предлагалось, хотя он кажется мне довольно сложным и не интуитивно понятным.В результате я получаю проанализированное время, как если бы оно было в желаемом часовом поясе, хотя оно представлено объектом UTC в формате UTC.Я также могу отобразить его в часовом поясе, который я хочу, используя strftime tzinfo:
jruby-1.6.1 :003 > time = '2010-05-01 01:00:00'
=> "2010-05-01 01:00:00"
jruby-1.6.1 :004 > tz = TZInfo::Timezone.get('America/New_York')
=> #<TZInfo::DataTimezone: America/New_York>
jruby-1.6.1 :005 > time += ' UTC'
=> "2010-05-01 01:00:00 UTC"
jruby-1.6.1 :006 > time = Time.parse(time)
=> Sat May 01 01:00:00 UTC 2010
jruby-1.6.1 :007 > time = tz.local_to_utc(time)
=> Sat May 01 05:00:00 UTC 2010
jruby-1.6.1 :010 > tz.strftime('%Y-%m-%d %H:%M:%S %Z', time)
=> "2010-05-01 01:00:00 EDT"
Я считаю, что это подойдет моим потребностям, но мне интересно, смогу ли я получить Время, чтобы оно фактически находилось в часовом поясе выше (просто UTC).