我有一个字符串,看起来像:
20130518134721
yyyymmddhhmmss
这基本上是一天中的时间。知道字符串的格式,并且知道年份填充为四位数字,其他年份填充为两位数字,那么如何分割字符串以便提取特定的信息,例如月份或小时?
可以使用DateTime.strptime
将String
转换为DateTime
对象。你可以这样做:
date = DateTime.strptime("20130518134721", "%Y%m%d%H%M%s") → datetime
之后,您可以访问hour
或mon
等Date
对象在ruby中的不同方法。
date.hour
#=> 13
date.mon
#=> 5
另外,请记住require 'date'
使用DateTime
对象。
require 'date'
d = DateTime.parse("20130518134721")
p d.hour #=> 13
p d.mon #=> 5
p d.min #=> 47
p d.day #=> 18
p d.year #=> 2013
日期最好由Date类处理。通常可以使用unpack
方法将字符串拆分为具有固定宽度的子字符串:
year, month, day, hour, min, sec = "20130518134721".unpack("A4A2A2A2A2A2")
puts day #=> 18