我在Ruby on Rails中遇到了一个问题。我希望将Tue, 10 Aug 2010 01:20:19 -0400 (EDT)
格式的字符串转换为date对象。
有没有什么办法可以让我这么做。
以下是我看过并尝试过的以下内容,但没有成功:
Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")
请帮我解决这个问题。
发布于 2010-08-30 17:56:03
Date.parse
方法有什么问题?
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:
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
。
发布于 2010-08-30 22:00:13
Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z")
应该是:
Date.strptime(updated, '%a, %d %b %Y %H:%M:%S %Z')
发布于 2015-05-02 00:56:12
str = "Tue, 10 Aug 2010 01:20:19 -0400 (EDT)"
str.to_date
=> Tue, 10 Aug 2010
https://stackoverflow.com/questions/3599239
复制相似问题