Well first, you fail for not profiling first.
Then, when you decide to profile, you see that your application isn't spending much time in your own code. It's spending most of the time instantiating Date objects.
Now, instead of you failing, it's ruby failing you. And there's not much you can do. You need to pass a Date object to another API, and all you are doing is passing a year, month, and day integer to Date.new, and you can't fathom why things are taking so long.