2

所以我从 AIX 的 errpt 解析这个字符串 - 将其转换为纪元 - 它似乎不尊重字符串的小时和分钟部分。

所以字符串是: 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"
4

2 回答 2

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"
于 2013-11-08T12:56:13.353 回答
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都只处理日期。

希望这可以帮助!

于 2013-11-08T12:59:22.153 回答