Have you tried just this?
$dt = new DateTime('2014-03-12T09:30:04+0000');
print_r($dt);
My output:
DateTime Object
(
[date] => 2014-03-12 09:30:04
[timezone_type] => 1
[timezone] => +00:00
)
So, it saves fine the timezone, but you probably are not interpreting fine the output; if you want to print it in YOUR local time, then you have to do some conversion.