Intl.DateTimeFormat timezone polyfill
Surgically polyfills timezone support in Intl.DateTimeFormat
API
Some browsers do not support arbitrary time zone in Intl.DateTimeFormat API (becuase its optional as per ECMA-402 standard). This polyfill is only to bring this support. Polyfill contains historical timezone data, CLDR data & tiny code to polyfill this support.
How to use?
- Install via nodejs:
npm i date-time-format-timezone
And then import in your code:
require('date-time-format-timezone'); // polyfill is ready
- In the browser
include everything:
<script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/date-time-format-timezone-complete-min.js">
or include individual files:
<script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/date-time-format-time-zone-no-data-min.js">
<script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/data/locales/locale-en-US-POSIX.js">
<script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/data/metazone.js">
<script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/data/timezones/tzdata-america-los_angeles.js">
This polyfill can add this support.
new Intl.DateTimeFormat('hi', {
timeZone: 'Asia/Calcutta',
timeZoneName:'long',
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
}).format(new Date());
"११/१/२०१७, पू १:२६ भारतीय मानक समय"
new Intl.DateTimeFormat('en', {
timeZone: 'America/Los_Angeles',
timeZoneName:'long',
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
}).format(new Date());
"1/10/2017, 12:00 PM Pacific Standard Time"
Support, API, Support, ---------------------------------, ------, Intl.DateTimeFormat, ✅, Date.toLocaleString, ✅, Date.toLocaleTimeString, ✅, Date.toLocaleTimeString, ✅, ## Generate latest data from www.iana.org.
git checkout https://github.com/yahoo/date-time-format-timezone.git
npm install
grunt download
grunt
npm publish
Browserified file size, Minified, gzipped, ----------------------------, ----------, ---------, complete, 2.64MB, 322KB, top zones1 only no locale, 369.32KB, 71KB, all zones no locale, 303.19KB, 75KB, top zones1 top locale2, 641.86KB, 148KB, *1. top zones are custom listed timezones here.
*2. top locales are custom listed locales here.