It starts off similarly to strptime, duping the string and creating a new Format::Bag instance to hold some temporary data.
Just a side note that using a plain hash instead of a Format::Bag for Date.parse speeds things up about 50 percent.