首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby字符串到日期的转换

Ruby字符串到日期的转换
EN

Stack Overflow用户
提问于 2010-08-30 17:34:58
回答 4查看 110.2K关注 0票数 77

我在Ruby on Rails中遇到了一个问题。我希望将Tue, 10 Aug 2010 01:20:19 -0400 (EDT)格式的字符串转换为date对象。

有没有什么办法可以让我这么做。

以下是我看过并尝试过的以下内容,但没有成功:

  1. Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")
  2. Chronic Parser
  3. Ruby: convert string to date
  4. Parsing date from text using Ruby

请帮我解决这个问题。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-30 17:56:03

Date.parse方法有什么问题?

代码语言:javascript
复制
str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)"
date = Date.parse str
=> #<Date: 4910837/2,0,2299161>
puts date
2010-08-10

它似乎起作用了。

这里唯一的问题是时区。如果你想要UTC时区的日期,那么最好使用Time对象,假设我们有string:

代码语言:javascript
复制
str = "Tue, 10 Aug 2010 01:20:19 +0400"
puts Date.parse str
2010-08-10
puts Date.parse(Time.parse(str).utc.to_s)
2010-08-09

我找不到更简单的方法将Time转换为Date

票数 141
EN

Stack Overflow用户

发布于 2010-08-30 22:00:13

代码语言:javascript
复制
Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")

应该是:

代码语言:javascript
复制
Date.strptime(updated, '%a, %d %b %Y %H:%M:%S %Z')
票数 15
EN

Stack Overflow用户

发布于 2015-05-02 00:56:12

代码语言:javascript
复制
str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)"
str.to_date
=> Tue, 10 Aug 2010
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3599239

复制
相关文章

相似问题

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