如何将字符串拆分为单独的组件以解析为DateTime?

时间:2013-05-19 09:50:08

标签: ruby

我有一个看起来像的字符串:

20130518134721
yyyymmddhhmmss

这基本上是一天中的时间。知道字符串的格式,并知道年份填充到四位数,所有其他数据填充为两位数,我如何拆分此字符串以便我可以提取特定信息,如月份或小时?

3 个答案:

答案 0 :(得分:3)

您可以使用DateTime.strptimeString转换为DateTime对象。你可以这样做:

date = DateTime.strptime("20130518134721", "%Y%m%d%H%M%s") → datetime

之后,您可以访问Datehour等红宝石mon对象的不同方法。

date.hour               
#=> 13
date.mon
#=> 5

另外,请记得require 'date'使用DateTime对象。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

日期类最好由其他人演示过来处理日期。通常可以使用unpack方法将字符串拆分为具有固定宽度的子字符串:

year, month, day, hour, min, sec = "20130518134721".unpack("A4A2A2A2A2A2")
puts day #=> 18