时间就像这个2016年4月27日
(年,月,日)
什么是解析它的好方法?
我想我可以躲过像
这样的事情 time = '2016年4月27日'
year = time.split('年')[0]
然后重新组织时间。但这也涉及encoding utf-8
的东西,而且我并不熟悉它。
答案 0 :(得分:3)
假设'2016年4月27日'
是您的输入字符串,并且您想要一个Date
对象,因为您知道该字符串的每个组件代表什么,您可以使用Date.strptime
并传入格式字符串:
irb> date = Date.strptime("2016年4月27日", "%Y年%m月%d日")
=> #<Date: 2016-04-27 ((2457506j,0s,0n),+0s,2299161j)>
irb> date.year
=> 2016
irb> date.month
=> 4
irb> date.day
=> 27
答案 1 :(得分:0)
1.9.3-p551 :001 > r = /(\d+)年(\d+)月(\d+)日/
=> /(\d+)年(\d+)月(\d+)日/
1.9.3-p551 :002 > s = '2016年4月27日'
=> "2016年4月27日"
1.9.3-p551 :003 > m = r.match(s)
=> #<MatchData "2016年4月27日" 1:"2016" 2:"4" 3:"27">
1.9.3-p551 :004 > m.to_a
=> ["2016年4月27日", "2016", "4", "27"]
1.9.3-p551 :005 > yr, mo, da = m[1..-1]
=> ["2016", "4", "27"]
1.9.3-p551 :006 > yr
=> "2016"
1.9.3-p551 :007 > mo
=> "4"
1.9.3-p551 :008 > da
=> "27"