Ruby:中文解析时间
时间是这样的Ruby:中文解析时间,ruby,unicode,cjk,chinese-locale,Ruby,Unicode,Cjk,Chinese Locale,时间是这样的2016年4.月27日(年、月、日) 解析它的好方法是什么 我想我可以做点像这样的事 time = '2016年4月27日' year = time.split('年')[0] 然后重新安排时间。但这也涉及到utf-8编码,我对它不是很熟悉。1.9.3-p551:001>r=/(\d+)年(\d+)月(\d+)日/ 1.9.3-p551 :001 > r = /(\d+)年(\d+)月(\d+)日/ => /(\d+)年(\d+)月(\d+)日/ 1.9.
2016年4.月27日代码>(年、月、日)
解析它的好方法是什么
我想我可以做点像这样的事
time = '2016年4月27日'
year = time.split('年')[0]
然后重新安排时间。但这也涉及到utf-8编码,我对它不是很熟悉。1.9.3-p551:001>r=/(\d+)年(\d+)月(\d+)日/
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"
=>/(\d+)年(\d+)月(\d+)日/
1.9.3-p551:002>s='2016年4.月27日'
=> "2016年4.月27日"
1.9.3-p551:003>m=r.匹配
=> #
1.9.3-p551:004>m.to_a
=> ["2016年4.月27日", "2016", "4", "27"]
1.9.3-p551:005>年、月、日=m[1..-1]
=> ["2016", "4", "27"]
1.9.3-p551:006>年
=> "2016"
1.9.3-p551:007>mo
=> "4"
1.9.3-p551:008>da
=> "27"
假设'2016年4.月27日'
是您的输入字符串,您希望从中得到一个日期
对象,因为您知道字符串的每个组成部分代表什么,所以可以使用并传递格式字符串:
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
irb>date=date.strtime(“2016年4.月27日“,%Y年%M月%D日")
=> #
irb>date.year
=> 2016
irb>date.month
=> 4
irb>date.day
=> 27
regex还可以使用命名捕获来获取日期组件:r=/(?\d+)年(?\d+)月(?\d+)日/代码>,这样你就可以调用<代码> [M]:[代码] >代码> M[[月] < /代码>,和<代码> M[[天] < /COD>直接在<代码> MatCHDATAs//Cord>对象上。哇,没想到它可以这么简单,谢谢!@ CQCN1991,不客气。如果解决方案以你想要的方式结束,请考虑接受这个答案: