I have created a Windows 2012 virtual machine using libvirt/QEMU. The hypervisor(bare metal) on which the VM is running is based on UTC time zone but the time zone in Windows VM should be Arizona time zone. I was able to fix the drift in the time using the below timer definition in the libvirt xml
<clock offset='localtime'>
<timer name='hypervclock' present='yes'/>
<timer name='rtc' tickpolicy='catchup' track='guest'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
But as soon as I restart the VM, the time shifts back to UTC but the time zone still shows as Arizona time zone which is wrong. Both the time and timezone should be for Arizona. Am I missing any libvirt instructions to avoid this? Did anyone else face the same issue?