我从外部方法得到一个字符串,时间和日期如此"07/09/10 14:50"
有没有什么方法可以将红宝石时间转换为'太平洋美国'时间,知道它的'UTC'时间?有变化的日期?即如果时差导致当天不同。
答案 0 :(得分:40)
由于看起来您使用的是rails,因此您有很多选择。我建议阅读所有关于时区的this article。
要转换为PST,这两种方法都是特定于轨道的方法。无需重新发明轮子:
time = Time.parse("07/09/10 14:50")
time.in_time_zone("Pacific Time (US & Canada)")
希望这有帮助
更新:rails可能会尝试变聪明,并将您指定为字符串的时间指定为时区。要确保时间解析为UTC,您应该在字符串中指定:
time = Time.parse("07/09/10 14:50 UTC")
time.in_time_zone("Pacific Time (US & Canada)")
答案 1 :(得分:14)
要从字符串形式转换为日期或时间对象,您需要使用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的方法可以专门用于此任务,但这应该可以让你开始。
答案 2 :(得分:-5)
要求'时间'
t = Time.parse((Time.new-25200).to_s)
将t.strftime(“%A%D置于%I:%M%p”)