В ruby я анализирую дату в следующем формате: 24092008.
Я хочу преобразовать каждый раздел (год, месяц, дату) в число.
Я разделил их, используя регулярное выражение, которое создает три строки, которые я передаю в конструктор Integer.
date =~ /^([\d]{2})([\d]{2})([\d]{4})/
year = Integer($3)
month = Integer($2)
day = Integer($1)
Когда он попадает в строку месяца, он падает следующим образом:
`Integer': invalid value for Integer: "09" (ArgumentError)
Мне потребовалось некоторое время, чтобы понять, что он интерпретирует ведущий ноль как октал, а 09 не является действительным октальным числом (он отлично работает с "07").
Есть ли элегантное решение для этого, или я должен просто проверить число меньше 10 и сначала удалить ноль?
Спасибо.