我正在尝试使用26/03/2012dd/mm/yyyy格式的字符串Date.strptime解析为ruby的日期,如下所示:

#!/usr/bin/ruby
require 'date'
puts 'Ruby Version: ' + RUBY_VERSION
date_str = '26/03/2012'

date = Date.strptime(date_str, "%d/%m/%y")
puts 'Parsed Date: ' + date.to_s

输出为:
Ruby Version: 1.8.7
Parsed Date: 2020-03-26

年份部分已变为2020,而不是2012

最佳答案

应该是大写,而不是大写:

date = Date.strptime(date_str, "%d/%m/%Y")
puts 'Parsed Date: ' + date.to_s
# Parsed Date: 2012-03-26

From the docs:
 Date (Year, Month, Day):
    %Y - Year with century (can be negative, 4 digits at least)
            -0001, 0000, 1995, 2009, 14292, etc.
    %C - year / 100 (round down.  20 in 2009)
    %y - year % 100 (00..99)

因为%Y只需要两个数字,所以它取前两个%y并假设这是%y的两位数表示,因为20

07-28 02:27
查看更多