How to set a time zone in Puppeteer for page

Posted March 11, 2022 (updated June 23, 2022) by Dmytro Krasun ‐ 1 min read

Puppeteer allows blocking any outgoing requests while loading the page. Whether you want to block ads, tracking scripts, or different types of resources, it is relatively easy to do with Puppeteer.

Puppeteer allows changing the time zone on a per-page basis. In automation testing, you can test how the website behaves for different time zones. Or you can use it for scrapping to imitate the user from the expected time zone by the site.

It is reasonably simple to do by using page.emulateTimezone(timezoneId):

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({});
    try {
        const page = await browser.newPage();

        await page.emulateTimezone('Europe/London');

        await page.goto('https://screenshotone.com/');
    } catch (e) {
        console.log(e)
    } finally {
        await browser.close();
    }
})();

The list of available time zones you can find at Chromium source code, these are the most popular ones:

  • America/Santiago
  • Asia/Shanghai
  • Europe/Berlin
  • America/Guayaquil
  • Europe/Madrid
  • Pacific/Majuro
  • Asia/Kuala_Lumpur
  • Pacific/Auckland
  • Europe/Lisbon
  • Europe/Kiev
  • Asia/Tashkent
  • Europe/London

I hope I have helped solve the issue and I wish you a nice day!