首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ruby解析DB时区字符串格式

Ruby解析DB时区字符串格式
EN

Stack Overflow用户
提问于 2014-03-22 21:54:55
回答 2查看 232关注 0票数 1

我正在尝试解析一个访问我的api的字符串。传入的字符串是

代码语言:javascript
运行
复制
"2014-03-19T04:00:00.000Z"

我需要以下格式的数据库sql才能工作:

代码语言:javascript
运行
复制
"2014-03-19 00:00:00 -0400"

现在,我想出的解决办法是

代码语言:javascript
运行
复制
Time.zone.parse("2014-03-19T04:00:00.000Z").in_time_zone('America/New_York').to_s

对我来说,这是一种不雅的解决方案,我觉得应该有一种更动态的方法来处理事情,而不需要指定时区名称(默认情况下应该是本地的)。我只想转换字符串的格式,因为它们应该是等价的。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-22 22:35:12

time_zone文件中配置application.rb,并按如下方式使用:

代码语言:javascript
运行
复制
# application.rb:
class Application < Rails::Application
  config.time_zone = 'America/New_York'
end

Time.zone.parse("2014-03-19T04:00:00.000Z").to_s
# => "2014-03-19 00:00:00 -0400"

更多使用实例

代码语言:javascript
运行
复制
$ > Time.zone = "America/New_York"
# => "America/New_York"
$ > Time.zone
# => (GMT-05:00) America/New_York 
$ > Time.zone.now
# => Sat, 22 Mar 2014 18:28:48 EDT -04:00
票数 0
EN

Stack Overflow用户

发布于 2014-03-22 22:39:22

代码语言:javascript
运行
复制
irb(main):008:0> Time.parse("2014-03-19T04:00:00.000Z").getlocal.strftime("%F %T %z")
=> "2014-03-19 04:00:00 +0000"

在GMT+1中的系统上:

代码语言:javascript
运行
复制
irb(main):003:0> Time.parse("2014-03-19T04:00:00.000Z").getlocal.strftime("%F %T %z") 
=> "2014-03-19 05:00:00 +0100"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22584119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档