2

次のように、を使用してRubyの日付26/03/2012にフォーマットされた文字列を解析しようとしています。dd/mm/yyyyDate.strptime

#!/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

4

2 に答える 2

4

%Y:ではなく大文字にする必要があります%y

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

ドキュメントから:

 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は2桁のみを想定しているため、最初の2桁を取り、。の202桁の表現であると想定します。20202020 % 100 = 20

于 2012-08-30T14:08:27.270 に答える
1

strptime関数をに 変更した場合date = Date.striptime(date_str, "%d/%m/%Y")

正しく出力されます。

于 2012-08-30T14:09:18.053 に答える