Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →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
Use Puppeteer’s en-IN locale emulation and JavaScript’s Intl.NumberFormat and Intl.DateTimeFormat to show India-oriented number and date conventions before taking a screenshot. Set the timezone separately only when dates should reflect India-local time: locale controls formatting conventions, while timezone controls the clock time represented.
Set the locale, timezone, and formatters separately
This runnable ES module example formats a number and a date explicitly, then saves a PNG with Puppeteer. Use Node.js with Puppeteer installed in your project. The chosen date is an ISO timestamp with a UTC offset, so it identifies a specific instant rather than relying on ambiguous local parsing.
import puppeteer from 'puppeteer';
const browser = await puppeteer.launch();
try {
const page = await browser.newPage();
// Emulate an English-language Indian browser locale.
await page.emulateLocale('en-IN');
// Optional: use this only when displayed dates should use India-local time.
await page.emulateTimezone('Asia/Kolkata');
await page.setContent(`
<!doctype html>
<html>
<head><meta charset="utf-8"></head>
<body>
<div id="output"></div>
<script>
const amount = 1234567.89;
const date = new Date('2026-10-03T12:00:00Z');
const numberText = new Intl.NumberFormat('en-IN').format(amount);
const dateText = new Intl.DateTimeFormat('en-IN', {
year: 'numeric', month: 'long', day: 'numeric',
timeZone: 'Asia/Kolkata'
}).format(date);
document.querySelector('#output').textContent = numberText + ' | ' + dateText;
</script>
</body>
</html>
`);
await page.screenshot({ path: 'screenshot.png' });
} finally {
await browser.close();
}
The example deliberately does not assert a literal rendered date or punctuation. Exact output can depend on the browser runtime, its ICU/locale data, formatter options, and timezone. Inspect the saved image or read the rendered text in the same deployment runtime where the screenshot will be produced.
Choose the date and number conventions you actually need
Locale controls regional presentation
en-IN requests English-language India conventions, including locale-sensitive grouping and date presentation. If the page is in another language, choose the appropriate language-and-region locale instead of assuming en-IN is universal.
#1 Best Overall
Timezone controls the represented local time
page.emulateTimezone('Asia/Kolkata') changes the browser’s emulated timezone; it does not replace locale selection. For formatter-controlled output, set timeZone: 'Asia/Kolkata' directly in Intl.DateTimeFormat. If a timestamp must stay in another timezone, specify that zone instead and do not convert it merely to make the locale Indian.
Explicit formatters versus the browser default
- Explicit locale: Passing
'en-IN'to eachIntlformatter makes the requested formatting visible in code and reproducible regardless of the emulated browser default. - Browser default: Omitting the formatter locale can be appropriate when the page should follow the browser environment set by
emulateLocale(). It makes the formatting choice less obvious at the call site.
These are independent choices: decide whether formatting should be pinned in application code, and separately decide which timezone the date should represent.
Rank #2
- HTML CSS Design and Build Web Sites
- Comes with secure packaging
- It can be a gift option
Capture a page or just one element
Puppeteer’s screenshot guide says, “For capturing screenshots use Page.screenshot().” The example uses that method for a page image. For a particular element, locate it and use ElementHandle.screenshot(); Puppeteer documents that it attempts to scroll a hidden element into view before capturing it. The page screenshot API also supports full-page capture and clipping, so select the image bounds that suit the output.
Recommended Free Tools
// Full document rather than only the viewport:
await page.screenshot({ path: 'full-page.png', fullPage: true });
// Capture one matching element:
const output = await page.$('#output');
if (!output) throw new Error('Expected #output element was not found');
await output.screenshot({ path: 'output.png' });
See the Puppeteer screenshots guide and the Page.screenshot() API reference for screenshot options.
Rank #3
Apply the settings when capturing an existing website
Emulate locale and timezone before navigation when the application may read browser locale or timezone during startup. Then inspect the page’s own date and number formatting: Puppeteer changes the browser environment, but it does not rewrite text already rendered by a site or guarantee that every application honors the emulated values.
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: 'site.png', fullPage: true });
} finally {
await browser.close();
}
Replace the example URL with the page you control or are authorized to capture. If the application has its own language or timezone setting, confirm that setting too; browser emulation alone is not proof that its displayed values changed.
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
Troubleshoot unexpected output
- Grouping or date wording is not what you expected: Check the locale passed to each formatter and the formatter options. Verify the actual rendered result in the same browser runtime used for production; locale data and runtime versions can affect exact output.
- The date is several hours off: Check the timestamp’s offset and the formatter’s
timeZone. Locale selection does not set the timezone. - An existing website still shows its old formatting: Emulate locale and timezone before
goto(), then verify whether the site reads those settings or applies its own preferences. - The element screenshot is empty or missing: Confirm the selector matches an element and that the content has rendered before calling its screenshot method. For delayed pages, wait for the relevant selector before capture.
- The screenshot is cropped to the visible area: Use
fullPage: truefor the full document, or provide a clip when a specific rectangle is intended.
Or skip the browser setup
If you need a screenshot endpoint rather than a local Puppeteer script, ScreenshotNeo is a website screenshot API and MCP server. One GET request returns an image or PDF; it does not offer a Puppeteer-style locale-emulation setting, so set the target page’s own locale and date formatting if those visible values must be Indian-formatted.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchFor API setup and parameters, see the ScreenshotNeo documentation. Example cURL request:
Best Value
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Cookie banners, popups, and chat widgets are removed before the shot; bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots. The free plan includes 1,000 screenshots a month with no card, and paid plans start at $5 for 3,000.
Create a free ScreenshotNeo account.
Frequently Asked Questions
Does emulateLocale('en-IN') change the browser timezone?
No. Use Puppeteer’s separate timezone emulation method or specify a timezone in the date formatter.
Will Puppeteer convert a website’s existing date strings to Indian formats?
No. Locale emulation changes browser settings, but the site must use those settings or its own formatting logic for its displayed text to change.
Quick Recap
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.

