Ruby字符串到日期时间格式

时间:2014-12-24 22:58:05

标签: java ruby date functional-programming

我有多个日期来自用户输入,例如:

MM-DD-YYYY

6-3-1975

MM/DD/YYYY

4/23/1967

使用require 'time'

中内置的ruby

并尝试Time.parse("4/23/1967")

给我错误time.rb:argument out of range

使用破折号或斜线转换不同用户输入以解析的任何解决方案?

3 个答案:

答案 0 :(得分:2)

解决方案:

require 'date'

userDate = "4-23-1967"
readDate = Date.strptime(userDate, "%m-%d-%Y")
convertedDate = readDate.strftime("%-m/%-d/%Y")
puts convertedDate

OUTPUT: 4/23/1967

答案 1 :(得分:1)

尝试以下:

Time.parse("23/4/1967")
#=> 1967-04-23 00:00:00 +0100
Time.parse("3-6-1975")
#=> 1975-06-03 00:00:00 +0100

所以问题是您的月和日订单是相反的。

答案 2 :(得分:-1)

听起来您应该使用gsub将您不想要的字符替换为您所使用的字符。

input = "6-3-1975"
sanitized_input = input.gsub(/[- ]/, '/')

在方括号内,您可以放置​​您不想要的任何分隔符。