I need to format a Timestamp in a specific locale (not utc, not browser locale). But I must have the millisecond part of the date, too. My first attempt was second:'numeric'
with the DateTimeFormat
API:
new Intl.DateTimeFormat(
'de-de', // german as an example, user selectable
{
year: 'numeric', month: 'numeric', day: 'numeric',
hour: 'numeric', minute: 'numeric',
second: 'numeric',
hour12: false
}
)
.format(new Date()); // Date as an example
But the result is something like "26.11.2018, 09:31:04"
and not "26.11.2018, 09:31:04,243"
.
Is there a easier possibility than using formatToParts()
and detect the missing millisecond and add it again with the Intl.NumberFormat
?
Attention: If someone needs to implement this, Microsoft browsers are adding Left-To-Right-Mark Unicode chars into the output. So you can not parseInt
the result from formatToParts()
without sanitizing.
Edit: Moved the question to https://github.com/tc39/ecma402/issues/300
myDate.getSeconds()
. – Longe