I had a similar problem.
Time on my blog was 4 hours ahead of our timezone.
Most of the forums I read indicated the problem was with my host and the php.ini file. I contacted my host (bluehost) and they gave me directions on changing the timezone in the .ini file. (cpanel–file manager–(public_html) folder–change the line date.timezone = “America/New_York”;
Only nothing changed.
My host said they tested my php.ini file and it was correct, so that something was wrong in my WP installation.
I also tried the WP admin general settings by changing the UTC to UTC-5 (my timezone) as well as changing the city several times. Nothing changed the UTC time no matter what settings I chose.
So I searched under forums on UTC and found someone who said they solved their time problem by adding this code to their index.php file.
<?php date_default_timezone_set('America/New_York'); ?>
I tried adding it to the index.php, but it didn’t work. However, I then tried adding it to my header.php, and that did work.