One of the reasons it is slow is because it uses a Date::Format::Bag instance to hold some temporary data.
This class is actually just like a hash except that it is much slower. Its only benefit is that it allows you to use regular named methods instead of using the hash getter and setter methods.