gpt4 book ai didi

ruby-on-rails - Rails - 用时区解析时间的更好方法?

转载 作者:行者123 更新时间:2023-12-02 05:36:27 25 4
gpt4 key购买 nike

Time.parse 返回一个没有时区的时间对象。我想保留时区信息。有没有比下面的代码更好的方法来做到这一点?

def parse_with_timezone( string_input)
/(.*)([+-]\d\d):?(\d\d)$/.match( string_input) do |match|
tz = ActiveSupport::TimeZone[match[2].to_i.hours + match[3].to_i.minutes]
tz.parse( match[1])
end
end

输入是这样的字符串“2012-12-25T00:00:00+09:00”。此函数输出一个 TimeWithZone 对象。

最佳答案

您是否正在寻找当前本地的特定时区?

# Current zone
1.9.3p194> Time.zone.parse('2012-12-25T00:00:00+09:00')
=> Mon, 24 Dec 2012 15:00:00 UTC +00:00

控制台在上面设置为 UTC,但适用于您配置的任何内容

# Specific timezone 
1.9.3p194> Time.find_zone('Wellington').parse('2012-12-25T00:00:00+09:00')
=> Tue, 25 Dec 2012 04:00:00 NZDT +13:00

我注意到你正试图通过 +9 作为例子

1.9.3p194> Time.zone = 'Tokyo'
=> "Tokyo"
1.9.3p194> Time.zone.parse('2012-12-25T00:00:00+09:00')
=> Tue, 25 Dec 2012 00:00:00 JST +09:00

给你正确的结果。

关于ruby-on-rails - Rails - 用时区解析时间的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621535/

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