如果我有一个字符串,例如 string = "08/01/2012"
如何在一行中用 Ruby 返回“2012-08-01”?
例如取最后一个“/”之后的一组数字,将它们插入到开头,然后将“/”替换为“-”
最佳答案
因为您要处理日期,所以我会浏览 Date
库(对于某些功能,您必须 require 'date'
)因为它是最灵活稳定的方法:
Date.strptime(string, '%m/%d/%Y').strftime('%Y-%m-%d')
#=> "2012-08-01"
如您所见,strptime
(“字符串解析时间”)和strftime
(“字符串格式化时间”)都采用准确描述它们正在执行的操作的格式字符串。
如果你不想通过Date
,你可以像这样使用gsub
:
string.gsub(%r{(\d+)/(\d+)/(\d+)}, '\3-\1-\2')
#=> "2012-08-01"
关于ruby - 拆分、重新排列和连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11914092/