From: Jos Backus Date: 2007-02-03T03:23:28+09:00 Subject: Re: What's up with Time.local ? On Sat, Feb 03, 2007 at 02:58:59AM +0900, Peter Bailey wrote: > I need to check some file dates against the budgetary periods of our > company, to determine where those files get placed. I'm playing with the > Time.local object. I've proven that I can denote which budget period I'm > in by using the .between? method. But, I get this weird "octal digit" > error with some of my date entries. > > irb(main):001:0> t = Time.local(2007,09,09,00,00) > SyntaxError: compile error > (irb):1: Illegal octal digit > t = Time.local(2007,09,09,00,00) Numeric literals starting with `0' are interpreted as octal numbers. Try dropping the leading `0''s. > ^ > (irb):1: Illegal octal digit > t = Time.local(2007,09,09,00,00) > ^ > > I don't get the error when I specify the following date. It doesn't seem > to like the month of September. (-; > > irb(main):005:0> t = Time.local(2007,01,01,00,00) > => Mon Jan 01 00:00:00 -0500 2007 That's because there is no `9' in the base-8 number system, just like there is no `A' in the regular base-10 number system (but there is in the base-16 system a.k.a. hexadecimal). Hth, -- Jos Backus jos at catnook.com