How are you changing the timezone?
via LuCI? editing manually /etc/config/system ???
Note that the human-readable "zonename" option visible in LuCI and config file is just user-friendliness in the default case. The actual magic comes from the "timezone" config item, which is not visible in LuCI.
As we use a simplified timezone support with the musl C library, there is usually no full zoneinfo package, but instead a POSIX style timezone string is applied. It is read from /etc/config/system file at boot and stored to /tmp/TZ file for musl.
So, if you have e.g. edited the config file by hand, and just adjusted the human-readable zonename (like America/Toronto), that does actually pretty much nothing unless you have installed the full zoneinfo package set. For most users, the key is the timezone string. (The human-readable continent/city string plays role only if the zoneinfo packages are installed)
And if that editing is done in a running system, you need to also take care of changing the /tmp/TZ file. The easiest is maybe to reboot (or to do
/etc/init.d/system reload ).
LuCI has its own simple table of time zones, and changing the cleartext timezone in LuCI adjusts the TZ definitions in /etc/config/system in the background.
From my 19.07 system, adjusted for Finland.
OpenWrt 19.07-SNAPSHOT, r11086-ab7e9754df
root@router1:~# cat /tmp/TZ
root@router1:~# head /etc/config/system
option hostname 'router1'
option timezone 'EET-2EEST,M3.5.0/3,M10.5.0/4'
option zonename 'Europe/Helsinki'
option ttylogin '0'
option log_size '64'
I see the same time in the overview page, system page and in console.
And syncing with the browser seems to work ok.