gpt4 book ai didi

Ruby 将 UTC 转换为用户的时区

转载 作者:数据小太阳 更新时间:2023-10-29 07:23:50 24 4
gpt4 key购买 nike

我有以 UTC 格式保存的 dstring。虽然我有用户的时区偏移量 standard_offset我想在转换后以用户时区显示该日期。所以这就是我所做的,但最后你可以看到它显示 UTC 而不是 PSTPDT

  [64] pry> dstring
=> "2013-10-31T23:10:50Z"
[65] pry> standard_offset = -8
=> -8
[66] pry> e = Time.parse(dstring) + (standard_offset * 3600)
=> 2013-10-31 15:10:50 UTC
[67] pry> e.strftime("%m/%m/%Y %I:%M %p %Z")
=> "10/10/2013 03:10 PM UTC"

我希望最终得到 10/10/2013 03:10 PM PST 如何得到它?注意:这不是 Rails 应用。

最佳答案

我在 Time 类中添加了一个方法 in_timezone 方法如下:

class Time
require 'tzinfo'
# tzstring e.g. 'America/Los_Angeles'
def in_timezone tzstring
tz = TZInfo::Timezone.get tzstring
p = tz.period_for_utc self
e = self + p.utc_offset
"#{e.strftime("%m/%d/%Y %I:%M %p")} #{p.zone_identifier}"
end
end

使用方法:

t = Time.parse("2013-11-01T21:19:00Z")  
t.in_timezone 'America/Los_Angeles'

关于Ruby 将 UTC 转换为用户的时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19128436/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com