Why does the following not print two digits for the minutes and seconds?
Documentation for Intl.DateTimeFormat
.
Note that adding hour12: false
to the options for the hour, minute or second formatters has no visible effect.
const DTF = Intl.DateTimeFormat
const ye = (d) => new DTF('en-GB', { year: 'numeric' }).format(d)
const mo = (d) => new DTF('en-GB', { month: '2-digit' }).format(d)
const da = (d) => new DTF('en-GB', { day: '2-digit' }).format(d)
const ho = (d) => new DTF('en-GB', { hour: '2-digit' }).format(d)
const mi = (d) => new DTF('en-GB', { minute: '2-digit' }).format(d)
const se = (d) => new DTF('en-GB', { second: '2-digit' }).format(d)
const format = (d) => `${ye(d)}/${mo(d)}/${da(d)} ${ho(d)}:${mi(d)}:${se(d)}`
console.log(format(new Date('2019-01-01T00:00:00Z'))) // 2019/01/01 00:0:0