使用strptime和strftime的ruby解析日期

时间:2013-11-08 12:52:41

标签: ruby

所以我从AIX的errpt解析这个字符串 - 将它转换为epoch - 它似乎不尊重字符串的Hour和Minute部分。

所以字符串是:1108095913(MMDDHHMMYY)..但是当我将我的strptime转换为日期对象,然后按照我想要的格式化它时,它完全将我的小时和分钟归零。

我错过了什么吗?

irb(main):039:0> Date.strptime("1108095913", "%m%d%H%M%y").strftime('%m/%d/%y %H:%M')

=> "11/08/13 00:00"

2 个答案:

答案 0 :(得分:2)

您应该使用Time.strptime而不是Date方法,Date会删除小时和分钟

1.9.3-p429 :005 > Time.strptime("1108095913", "%m%d%H%M%y").strftime('%m/%d/%y %H:%M')
 => "11/08/13 09:59"

答案 1 :(得分:1)

使用DateTime代替Date

irb(main):002:0> require 'date'
=> true
irb(main):003:0> DateTime.strptime("1108095913", "%m%d%H%M%y").strftime('%m/%d/%y %H:%M')
=> "11/08/13 09:59"

原因是DateTime处理日期和时间,Date只处理日期。

希望这有帮助!