DateTime sınıfı ikinci parametre olarak timezone değerini alır. Eğer DateTime sınıfını çağırırken ikinci parametreyi girmezseniz null değeri atanır. setTimezone kullanmadan direkt constructor içerisinde timezone verebilirsiniz:

<?php 
$dateTime = new DateTime(datetime: 'now', timezone: new DateTimeZone('Europe/Istanbul'));
echo "Istanbul: " . $dateTime->format('Y-m-d H:i:s').PHP_EOL;
$dateTime->setTimezone(new DateTimeZone('Europe/Berlin'));
echo "Berlin: " . $dateTime->format('Y-m-d H:i:s').PHP_EOL;