So I repeated your experiment: setting time zone manually on the controller to +14:00, upon NTP syncing, it got the time of UTC+14:00, then after about 30 seconds it reset the time zone to UTC-5:00 and obtained the current time of UTC-5:00 (because the location is Boston,MA). I can’t reproduce the issue you reported, and I honestly don’t have a clue.
It has been brought up in another thread that when OpenSprinkler’s port number is not 80, the query to weather script will fail, and I realized this will affect the time zone query as well because the time zone query uses the same script. I didn’t think it’s related to your case, because you said you performed a reset of the controller, so the port number must be reset to 80. Just to bring this up in case it’s relevant.
Thanks for hanging in there with me to figure this out. The issue wasn’t a big deal since I could have manually set the time, but you took my issue seriously and came up with the solution. I’ll be watching for the update.