格式化日期红宝石

时间:2015-08-20 03:12:42

标签: ruby-on-rails ruby date datetime

我有2015-03-09T11:09:00.000Z格式的日期字符串。如何将其转换为yyyy-mm-dd格式?

我试过了,

require 'date'
string = "2015-03-09T11:09:00.000Z"
date = Date.strptime(string,"%Y%m%d")

它给了, ArgumentError: invalid date

我想要以下输出"2015-03-09"

有人能告诉我这个方向吗?我究竟做错了什么?谢谢。

4 个答案:

答案 0 :(得分:2)

你做得差不多。在指定日期格式时犯了一点错误。您只需将"%Y%m%d"更改为:"%Y-%m-%d"即可。然后,它会工作!

require 'date'
string = "2015-03-09T11:09:00.000Z"
Date.strptime(string,"%Y-%m-%d").to_s
# > "2015-03-09"

要查看所有可用的日期格式,请查看documentation

  

如何将其转换为yyyy-mm-dd格式?

如上述文档所示,您可以使用'%Y-%m-%d'格式,该格式与所需的yyyy-mm-dd格式相同。

答案 1 :(得分:1)

假设您需要一个字符串而不是日期对象,您只需要:

string[0,10] #=> "2015-03-09"

答案 2 :(得分:0)

试试这个

config/templates

答案 3 :(得分:0)

字符串在Time中,所以我会使用Time来解析字符串并将其格式化为日期。

string = "2015-03-09T11:09:00.000Z"
date = Time.parse(string).strftime("%Y-%m-%d")

输出为"2015-03-09"。希望有所帮助。