Intl.DateTimeFormat custom pattern output

# Muhammad Hussein Fattahizadeh (9 years ago)

I want to use Intl.DateTimeFormat developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat

but with custom pattern for output. I use this method for php version of ICU dateformat and it's work well.

$fmt = datefmt_create( 'fa_IR at calendar=persian', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL, 'EEEE d MMMM yyyy HH:mm' // as ISO_8601);

echo datefmt_format($fmt, time()) . "\n";// پنجشنبه ۱۰ اردیبهشت ۱۳۹۴ ۱۲:۱۲

How can i set pattern as ICU documentation in Intl.DateTimeFormat like php version of Intl/ICU date time formatter.

My javascript code

console.log(new Intl.DateTimeFormat('fa-IR-u-ca-persian').format(new Date())); // ۱۳۹۴/۵/۲۵ ه‍.ش.

How can iset ISO_8601 pattern in my javascript format pattern like EEEE d MMMM yyyy HH:mm or MM yy dd or etc ?

ISO_8601 en.wikipedia.org/wiki/ISO_8601

PHP IntlDateFormatter::format php.net/manual/en/intldateformatter.format.php

ICU Date formatter www.icu-project.org/apiref/icu4c/udat_8h.html#details

ICU Date formats www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details

# Norbert Lindenberg (9 years ago)

Intl.DateTimeFormat doesn’t currently let you specify a custom pattern in ICU/CLDR format. The reason is that the API had to be implemented on top of different existing internationalization APIs, and the API on Windows didn’t support CLDR date format patterns.

There is a feature request for patterns and skeletons in DateTimeFormat – I don’t know if the current Internationalization ad-hoc is planning to take it up: ecmascript#771

You can get an ISO 8601-style date format directly from Date.prototype.toISOString, but that uses the Gregorian calendar and UTC; it cannot be configured to use the Persian calendar or Iran time.

Norbert