Timezones are relative to UTC (0000), so you gotta remove it from your Date.
DateTime.now.midnight.utc #=> '2013-08-23 03:00:00 +0000'
Now, just get rid from the compensated hours.
DateTime.now.midnight.utc.change({:hour => 0, :min => 0}) #=> '2013-08-23 00:00:00 +0000'
Not sure if there is a cleaner way to do it, but it worked for me (Ruby 1.9.3p385).