First of all, fingerprinting isn't that precise. It's extremely overrated, because instilling fear gets clicks and views. You can't use the browser fingerprint for authentication, for example, because even though there are enough bits in theory, they are not random and not unique and a lot of people end up having the same exact fingerprint, for example, if they use company PCs where everyone gets the exact same PC and plugins/extensions are enforced with group policy.
However, the JS running in the browser is limited and sandboxed. It cannot do everything and can't access everything. But among the few things it can actually do is prompting for the timezone offset and transferring it to a permitted site, like the one the JS app is running on. If you feel stalked by ad companies fingerprinting you and you have JS enabled, that's unfortunately something you have to accept, unless you run your browser in an environment with a different timezone, but then all times on sites you visit and in its history, will appear off. For example, in Linux, you could achieve that by setting the TZ environment variable in the environment you start the browser in. If that environment is a shell script, it can be temporary and just for the browser while it's running. A script could even be made to pick a random TZ on every browser start, to confuse fingerprinters.