published: 09 Aug 2022
2 min read
How to get current time zone in JavaScript
To get the current browser's time zone, you can use the getTimezoneOffset()
method from the JavaScript Date
object.
The getTimezoneOffset()
returns the time difference, in minutes, between UTC time and local time. The returned value is positive if the local time zone is behind UTC and negative if the local time zone is ahead of UTC.
For example, if your time zone is UTC+5, the getTimezoneOffset()
method will return -300
minutes:
const date = new Date();
const offset = date.getTimezoneOffset();
console.log(offset); // -300
The getTimezoneOffset()
works in all modern browsers, Internet Explorer 5 and higher.
Daylight Saving Time (DST) time zones
Note that the returned value is not always constant due to Daylight Saving Time (DST) time zones.
For a time zone that moves in and out of Daylight Saving Time (DST) every year, the number of offset minutes returned by calling getTimezoneOffset()
can vary +/- 60 minutes.
For example, North America uses Pacific Standard Time (PST) during wintertime and Pacific Daylight Time (PDT) during summertime. The PST time is 8 hours behind UTC (UTC-08:00
), whereas the PDT time is 7 hours behind UTC (UTC-07:00
).
Current time | PST (UTC-08:00) | PDT (UTC-07:00) |
---|---|---|
Return value | 480 | 420 |
For non-DST time zones, the getTimezoneOffset()
method always returns the same number of minutes.
Time zone != offset
The getTimezoneOffset()
method only gives you the local time zone offset from UTC time and not the actual time zone (e.g. Europe/Berlin
).
Using an offset to calculate time zone is not always accurate due to daylight saving rules. Instead, you should use the Intl.DateTimeFormat
object.
The Intl.DateTimeFormat
object is available in all modern browsers and provides the language-specific date and time formatting methods.
Here is an example that shows how you can get the system's IANA time zone in JavaScript:
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(timezone); // Asia/Karachi
Are we missing something? Help us improve this article. Reach out to us.
How to get current time zone in JavaScript
To get the current browser's time zone, you can use the getTimezoneOffset()
method from the JavaScript Date
object.
The getTimezoneOffset()
returns the time difference, in minutes, between UTC time and local time. The returned value is positive if the local time zone is behind UTC and negative if the local time zone is ahead of UTC.
For example, if your time zone is UTC+5, the getTimezoneOffset()
method will return -300
minutes:
const date = new Date();
const offset = date.getTimezoneOffset();
console.log(offset); // -300
The getTimezoneOffset()
works in all modern browsers, Internet Explorer 5 and higher.
Daylight Saving Time (DST) time zones
Note that the returned value is not always constant due to Daylight Saving Time (DST) time zones.
For a time zone that moves in and out of Daylight Saving Time (DST) every year, the number of offset minutes returned by calling getTimezoneOffset()
can vary +/- 60 minutes.
For example, North America uses Pacific Standard Time (PST) during wintertime and Pacific Daylight Time (PDT) during summertime. The PST time is 8 hours behind UTC (UTC-08:00
), whereas the PDT time is 7 hours behind UTC (UTC-07:00
).
Current time | PST (UTC-08:00) | PDT (UTC-07:00) |
---|---|---|
Return value | 480 | 420 |
For non-DST time zones, the getTimezoneOffset()
method always returns the same number of minutes.
Time zone != offset
The getTimezoneOffset()
method only gives you the local time zone offset from UTC time and not the actual time zone (e.g. Europe/Berlin
).
Using an offset to calculate time zone is not always accurate due to daylight saving rules. Instead, you should use the Intl.DateTimeFormat
object.
The Intl.DateTimeFormat
object is available in all modern browsers and provides the language-specific date and time formatting methods.
Here is an example that shows how you can get the system's IANA time zone in JavaScript:
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(timezone); // Asia/Karachi
Are you looking for other code tips?
JS Nooby
Javascript connoisseur