2013-11-08 3 views
2

Итак, я разбираю эту строку из erript AIX - чтобы преобразовать ее в эпоху - и, похоже, она не уважает Часу и Минуту часть строки.ruby ​​parse date using strptime и strftime

Так строка: 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" 

ответ

1

Вы должны использовать Time.strptime вместо метода 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" 
+0

Я на 1.8.7 - это функция 1.9? irb (main): 001: 0> require 'time' => true irb (main): 002: 0> Time.strptime ("1108095913", "% m% d% H% M% y"). strftime ('% m /% d /% y% H:% M') NoMethodError: undefined method 'strptime 'for Time: класс от (irb): 2 от /usr/lib64/ruby/1.8/date/ format.rb: 194 irb (main): 003: 0> – awojo

+0

@awojo yeah я использую 1.9.3, я не могу попробовать его прямо сейчас на 1.8.7, но он похож на его псевдоним в 1.9.3, попробуйте DateTime как уже упоминалось выше. 'require 'time'' и' DateTime.strptime («1108095913», «% m% d% H% M% y»). strftime ('% m /% d /% y% H:% M ') ' –

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 только обрабатывает дату.

Надеюсь, это поможет!

Смежные вопросы