gpt4 book ai didi

ruby - 如何将时间字符串解析为特定时区?

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

我有这个字符串:

Sunday, Oct 7 4:00pm

当我使用 Time.parse 时,Ruby 假定时区是 UTC。我如何告诉 Ruby 给我 -0700 时区?我试过使用

tz.utc_to_local(Time.parse(string))

但我仍然得到 UTC +0000 时区。

最佳答案

“在解析时间信息时,切勿在未指定时区的情况下执行此操作,这一点很重要。”

宝贵的建议来自这篇有用的博文:Working with time zones in Ruby on Rails .

无论您是否使用 Rails,时间字符串始终附加一个时区。在您的情况下,您假设时间字符串具有 -0700 偏移量,但没有将时区信息传递给解析方法(假设它是 UTC)。

> Rails.application.config.time_zone
=> "Mountain Time (US & Canada)"

这是因为我有以下配置:

config.time_zone = 'Mountain Time (US & Canada)'

> string = "Sunday, Oct 7 4:00pm"
=> "Sunday, Oct 7 4:00pm"
> Time.parse(string)
=> 2012-10-07 16:00:00 -0600
> Time.parse(string).zone
=> "MDT"

在纯 ruby​​ 中也以同样的方式工作:

> require 'time'
=> true
> Time.local( 2012, 10, 07 )
=> 2012-10-07 00:00:00 -0600
> Time.local( 2012, 10, 07 ).zone
=> "MDT"
> string = "Sunday, Oct 7 4:00pm"
=> "Sunday, Oct 7 4:00pm"
> Time.parse(string)
=> 2012-10-07 16:00:00 -0600
> Time.parse(string).zone
=> "MDT"

关于ruby - 如何将时间字符串解析为特定时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12774018/

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