在 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 的数字并首先删除零?
谢谢。