Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Set Puppeteer’s page locale to en-IN and its timezone to Asia/Kolkata before navigating, then capture the page with page.screenshot(). These are separate settings: locale influences language and regional formatting, while timezone affects date and time behavior. Neither setting by itself makes a page behave as though it is being accessed from an Indian IP address.
Set the locale and timezone before navigation
Puppeteer provides separate page methods for locale and timezone emulation. Await both before navigating so the page’s initial rendering can use the requested settings.
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
await page.emulateLocale('en-IN');
await page.emulateTimezone('Asia/Kolkata');
await page.goto('https://example.com', { waitUntil: 'networkidle0' });
await page.screenshot({ path: 'india.png', fullPage: true });
} finally {
await browser.close();
}
en-IN is a practical starting locale for English-language India regional behavior; Asia/Kolkata is the timezone identifier for India. The official API documentation describes the methods generically rather than giving an India-specific example, so verify the result in the Puppeteer and browser versions you run. See Puppeteer’s locale API, timezone API, and screenshot API.
Recommended Free Tools
What each setting changes
Locale: language and regional formatting
page.emulateLocale('en-IN') sets the page’s emulated locale. It can affect locale-sensitive browser behavior such as formatted numbers and dates, but a site may make its own language or content choices. Inspect the page you care about rather than assuming every site will interpret the locale identically.
#1 Best Overall
Timezone: date and time behavior
page.emulateTimezone('Asia/Kolkata') sets the emulated timezone for the page. This is distinct from locale: changing the timezone does not select English or regional number formatting, and changing the locale does not set India time.
Viewport and full-page capture are separate
Viewport and device emulation control dimensions and device characteristics, not locale or timezone. The screenshot option fullPage controls whether the capture extends beyond the viewport; its documented default is false. Use true only when you want the whole page captured.
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
Validate the rendered result
Check the runtime values and a known locale-sensitive output in a local test page, then inspect the screenshot. For example, after setting both options, evaluate:
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →const settings = await page.evaluate(() => ({
locale: Intl.DateTimeFormat().resolvedOptions().locale,
timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,
sampleDate: new Intl.DateTimeFormat(undefined, {
dateStyle: 'full',
timeStyle: 'long'
}).format(new Date('2025-01-15T12:00:00Z')),
sampleNumber: new Intl.NumberFormat().format(1234567.89)
}));
console.log(settings);
This is a practical check, not a Puppeteer-provided India verification routine. Also examine the actual target page: application code may override formatting, render content based on its own preferences, or obtain localization from a server.
Rank #3
Important limits of page emulation
Locale and timezone emulation do not establish a physical location in India and do not prove that a site will return the same response as it would to a visitor there. They do not, on their own, change the network source address or guarantee IP-based content, server-side language or currency selection, or geolocation results. Test those behaviors separately if they are part of the screenshot requirement.
Troubleshooting Puppeteer locale and timezone screenshots
- The methods are unavailable: check the Puppeteer version installed in the project and use its matching API documentation. The current locale API reference is labeled version 25.11.0, while the current timezone and screenshot references are labeled 25.12.0; do not assume every deployed version exposes identical APIs.
- The page still shows unexpected dates or numbers: confirm both awaited calls ran before navigation, inspect the runtime values with
Intl.DateTimeFormat().resolvedOptions(), and check whether the site overrides formatting or uses server-provided strings. - The site still serves non-Indian content: page-level locale and timezone settings are not proof of an Indian network location or server-side localization. Check the site’s own language, account, IP, and geolocation rules as relevant.
- The image is only the visible viewport: set
fullPage: trueif you need content beyond the viewport; this changes capture extent, not locale or timezone. - The capture finishes before desired content appears: choose an appropriate navigation wait condition and, when necessary, wait explicitly for the page content needed in the image before calling
page.screenshot().
Or skip the browser setup
ScreenshotNeo can apply a timezone and geolocation option for captures, but those options are not a guarantee of a site’s server-side or IP-based behavior. Its one-request screenshot endpoint can also remove cookie banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed. An MCP server provides screenshot tools for AI agents, and the free plan includes 1,000 screenshots a month without a card; paid plans start at $5 for 3,000 shots.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com --data-urlencode timezone=Asia/Kolkata --data-urlencode locale=en-IN -o shot.webp
See the ScreenshotNeo documentation for supported parameters. Sign up for 1,000 free screenshots a month with no card.
Quick Recap
Best Value
Rank #4
- Brand: Wiley
- Set of 2 Volumes
- A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

