我需要在Ruby中简化日期字符串:
2008-10-09 20:30:40
我只想要一天的部分:
2008-10-09
我正在寻找一条gsub线,它会在一定数量的字符或第一个空格后删除所有内容。
答案 0 :(得分:6)
我更喜欢尽可能简单地使用解决方案。使用gsub
是不必要的复杂。其中任何一个都会这样做:
str = '2008-10-09 20:30:40'
str[/(\S+)/, 1] #=> "2008-10-09"
str[0, 10] #=> "2008-10-09"
答案 1 :(得分:2)
文字解决方案:
date.gsub(/(.{10}).*/, '\1')
date.gsub(/\s.*/, '')
date[0, 10]
更好的解决方案:将其视为DateTime对象 - 然后您可以根据需要对其进行格式化:
date = DateTime.now
date.strftime("%m-%d-%Y") # America
date.strftime("%d-%m-%Y") # Europe
答案 2 :(得分:1)
如果格式一直如此,
'2008-10-09 20:30:40'[/[-\d]+/] # => "2008-10-19"
答案 3 :(得分:0)
'2008-10-09 20:30:40'.split[0]