Convert a string date format from "17-Nov-2011" to "11/17/11" Convert a string date format from "17-Nov-2011" to "11/17/11" ruby ruby

Convert a string date format from "17-Nov-2011" to "11/17/11"


Use the built-in Time.parse and Time#strftime functions.

require 'time'time = Time.parse("17-Nov-2011")time.strftime("%m/%d/%y")# => "11/17/11"


With Date#strftime you can format a date. Date.strptime allows you a 'reverse' action: Build a date from string.

When you combine both, you get your result:

puts Date.strptime('17-Nov-2011', '%d-%b-%Y').strftime('%m/%d/%y')

Each %-Parameters is a part of the date string.You need:

For parsing the date string:

  • %d: number of the day (17)
  • %b: Month with three letters (Nov)
  • %Y: Year with 4 digits (2011)

For creating the string:

  • %m: Month (11)
  • %d: number of the day (17)
  • %y: Year with 2 digits (11)


Ruby has a pretty robust set of date and time functions, check out the Date class.

Date.parse("17-Nov-2011").strftime('%m/%d/%y')