# Browser timezone does not match IP: the fix

> Browser timezone does not match IP? Your browser reads the computer's clock, and a proxy or VPN moves only the address. Match the zone to the exit.

Source: https://mosaicbrowser.com/guides/browser-timezone-does-not-match-ip

## Browser timezone does not match IP: what it means and the fix

A timezone that does not match your IP means the zone your browser reports, which it reads from your computer's clock, is in a different place from where an IP lookup puts your address. It almost always comes from a proxy or VPN, which moves your address and leaves the clock where it was.

![The clock says one city, the IP says another](https://mosaicbrowser.com/covers/browser-timezone-does-not-match-ip.webp)

When a checker says your browser timezone does not match your IP, it has read two things and found they point at different places. One is the zone your browser reports. The other is the zone an IP database gives your address. The browser's answer comes from your computer's clock settings; the address comes from your network, and a proxy or VPN changes only that half.

## The two readings a site compares

A page gets the browser's zone in one line of JavaScript. `Intl.DateTimeFormat().resolvedOptions().timeZone` returns an IANA name such as `Europe/Berlin` ([MDN documents the call](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions)), and `new Date().getTimezoneOffset()` gives the offset in minutes. Neither needs a permission prompt.

The server gets the other reading for free, because it sees the address your request came from. A geolocation database turns that address into a city and a zone. If the browser says `America/New_York` and the exit sits in Frankfurt, the two disagree by six hours, and the page knows it before it has read anything else about you.

That is why consistency scanners such as Pixelscan put this check on their proxy card: it costs them nothing and it fails loudly. ([What Pixelscan checks](https://mosaicbrowser.com/guides/what-does-pixelscan-check) has the card-by-card readout and our dated runs.)

## Why the browser timezone does not match the IP

Chrome has no timezone setting of its own. It asks the operating system, so the zone in every tab is the one in your system settings.

A proxy or a VPN moves your traffic and nothing else. The browser keeps reporting home time while sites see an address abroad. The same happens in the other direction: a laptop set to "set time zone automatically" picks up a new zone after a flight, while a VPN keeps your address at home.

There is a third case that is not a mismatch at all. IANA renames zones and keeps the old name as an alias, and Chrome resolves some new names to the old ones. We measured it on Chromium 153: `Europe/Kyiv` comes back as `Europe/Kiev`, `Asia/Kolkata` as `Asia/Calcutta`, `Asia/Ho_Chi_Minh` as `Asia/Saigon` and `America/Argentina/Buenos_Aires` as `America/Buenos_Aires`. Google's own Chrome for Testing 153 renames exactly the same four. A checker that compares the two strings will call that a mismatch. Our own leak report did, on every Ukrainian, Indian, Vietnamese and Argentinian profile, until we changed it to compare zones through the browser's own `Intl` instead of comparing text.

Mosaic is a desktop app

Email yourself the link and open it on your computer.

[How it works: Matched to the exit](https://mosaicbrowser.com/features/exit-matching)

## Does a mismatch matter?

On its own it proves little, because real people travel and forget to change their clocks. What it does is add a fact a site can use. A login that has come from Berlin time for a year and now reports Berlin time from a Texas address looks different from its own history, and that is the comparison an account's security system is built to make.

For anyone running accounts they are entitled to run, the rule we follow is simple: decide where each account lives, then make the exit, the timezone and the language all say that place. Fixing the clock to fit whatever address a rotating pool handed out moves the account around the map, which is worse than a single mismatch.

## How to check yours

1. Find the zone your browser reports: open DevTools (⌥⌘I on a Mac, Ctrl+Shift+I on Windows), go to Console and run `Intl.DateTimeFormat().resolvedOptions().timeZone`.
2. Find the zone of your exit: open any IP lookup page through the same proxy or VPN and read the location it shows.
3. Compare them as places, not as strings. `Europe/Kiev` and `Europe/Kyiv` are one zone.

The full list of what a page can read, from the screen to the fonts, is in [our guide to checking your browser fingerprint](https://mosaicbrowser.com/guides/check-your-browser-fingerprint).

## How to make them match

### Change the computer's timezone

On a Mac it is System Settings › General › Date & Time, with "Set time zone automatically using your current location" turned off ([Apple's steps](https://support.apple.com/guide/mac-help/set-the-date-and-time-automatically-mchlp2996/mac)). On Windows it is Settings › Time & language › Date & time, with "Set time zone automatically" turned off and the zone picked from the list ([Microsoft's steps](https://support.microsoft.com/en-us/windows/how-to-set-your-time-and-time-zone-dfaa7122-479f-5b98-2a7b-fa0b6e01b261)).

This works and it moves everything. Every browser, every app and every calendar on the machine now lives in the new zone, and you can only be in one place at a time.

### Override it for one tab in DevTools

Chrome DevTools can store a custom location with a Timezone ID and a Locale, for example `America/New_York` and `en-US` ([Google's documentation](https://developer.chrome.com/docs/devtools/settings/locations)), and apply it from the Sensors panel. It is a testing tool: the override belongs to the DevTools session on that tab, so it is useful for checking how your own site behaves in another zone and not for running an account.

### Give each browser profile its own zone

If you keep accounts in several places, the zone has to belong to the browser profile rather than the computer. That is what an anti-detect browser does, and it is the part we spent most effort getting right in Mosaic.

## How Mosaic keeps the timezone on the exit

In Mosaic, a profile's timezone, language and geolocation are drawn from the address its proxy actually exits from. The exit is measured through the proxy itself when the profile is created, then again before every launch, because residential exits move. The zone is passed to the engine at launch and set in C++, so a worker inside the page reads the same zone as the page.

![Creating a profile in Mosaic: a checked proxy, and the hardware and locale drawn to match its exit](https://mosaicbrowser.com/shots/profile-editor.png)
*A new profile drawn for the exit its proxy measured*

If the editor sees a proxy that exits in one zone and a profile set to another, it shows a "Timezone mismatch" banner and says whether the zone will be brought into line before the browser starts. That depends on "Match the identity to the proxy exit at every launch", which is on by default and lives on the editor's Privacy tab. Language only follows on a profile that has never run, because a session that has sent `de-AT` to a site for a month and suddenly sends `en-US` has told that site something about itself.

A profile with no proxy browses from your own address, so it is matched to your computer's own location. We got that wrong once: a failed lookup at start-up was never retried, and a Mac in Austria made profiles claiming New York. Now the lookup is retried, and when the answer is genuinely unknown the fallback is the machine's own timezone, never a table of popular countries.

![A proxy check result in Mosaic: latency, exit address, ISP, HTTPS tunnelling and reputation](https://mosaicbrowser.com/shots/proxy-check.png)
*The exit a profile is matched to, measured through the proxy*

How the exit is measured, cached and re-checked at each launch is on the [exit matching](https://mosaicbrowser.com/features/exit-matching) page.

## Sources

1. [MDN: Intl.DateTimeFormat.prototype.resolvedOptions()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/resolvedOptions), read November 2, 2026
2. [Chrome DevTools: Custom locations (Timezone ID and Locale)](https://developer.chrome.com/docs/devtools/settings/locations), read November 2, 2026
3. [Apple: Set the date and time on Mac](https://support.apple.com/guide/mac-help/set-the-date-and-time-automatically-mchlp2996/mac), read November 2, 2026
4. [Microsoft: Set time, date, and time zone settings in Windows](https://support.microsoft.com/en-us/windows/how-to-set-your-time-and-time-zone-dfaa7122-479f-5b98-2a7b-fa0b6e01b261), read November 2, 2026

## Questions

### Is a timezone mismatch always a bad sign?

No. A person on a work trip with a laptop still set to home time produces exactly this mismatch. It is one signal among many, but it is the cheapest one for a site to read, so a scanner checks it first.

### Does a VPN change my browser's timezone?

A VPN changes the address sites see. The browser still reads its timezone from the operating system, so unless you change the computer's clock as well, the two disagree.

### Why does a checker say Europe/Kiev when I set Europe/Kyiv?

Both names are the same zone. Chrome's ICU data resolves the newer name to the older one, and Google's own Chrome does the same. A checker that compares the strings reports a mismatch that is not there.

### Should I change the timezone or the proxy?

Decide where the account lives first. If it belongs in Berlin, use a Berlin exit and a Berlin zone. Changing the clock to fit whatever exit a pool handed out moves the account around the map.

## Related

[Match browser timezone to proxy exits, automatically](https://mosaicbrowser.com/features/exit-matching): No need to match browser timezone to proxy by hand: Mosaic sets each profile's timezone, language and location from the measured exit, before every launch.

[How to check a proxy before you use it](https://mosaicbrowser.com/guides/how-to-check-a-proxy-before-you-use-it): Check that a proxy answers and tunnels, where its exit really is, whether the address is residential or blocklisted, and that the browser stays behind it.

[What does Pixelscan check?](https://mosaicbrowser.com/guides/what-does-pixelscan-check): Pixelscan checks whether a browser's fingerprint agrees with itself and with its IP, then names the card that failed. What each card reads, with our dated runs.

[How to check your browser fingerprint, and read the result](https://mosaicbrowser.com/guides/check-your-browser-fingerprint): How to check your browser fingerprint: a uniqueness test says how rare it is, a consistency scanner whether it could be real. Run each twice.

[Browser fingerprint: what a site can read about your machine](https://mosaicbrowser.com/glossary/browser-fingerprint): A browser fingerprint is the set of values a site reads about your browser and computer, which together recognize you without cookies. What goes into one.







## Run this guide on your own accounts

Every Mosaic profile is a fingerprint, a proxy exit and a cookie jar that agree with each other, kept on your computer. Free holds 3 profiles. Pro is $49 a month for any number.

Mosaic is a desktop app

Email yourself the link and open it on your computer.
