Ruby将UTC转换为用户的时区
发布时间:2020-12-17 03:55:32 所属栏目:百科 来源:网络整理
导读:我有dstring保存在UTC中.虽然我有用户的时区偏移标准偏移量 我希望在转换后在用户的时区显示该日期.所以这就是我所做的,但最后你可以看到它显示UTC而不是PST或PDT [64] pry dstring = "2013-10-31T23:10:50Z" [65] pry standard_offset = -8 = -8 [66] pry e
我有dstring保存在UTC中.虽然我有用户的时区偏移标准偏移量
我希望在转换后在用户的时区显示该日期.所以这就是我所做的,但最后你可以看到它显示UTC而不是PST或PDT [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' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |