Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
hello amila 2
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2.1 Safari/605.1.15
Browser:
Safari 17
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
2 years ago
Test name
Executions per second
hackyOffset
484503.7 Ops/sec
partsOffset
240427.9 Ops/sec
dtf.formatToParts
392993.5 Ops/sec
dtf.format
531904.9 Ops/sec
Script Preparation code:
jsDate = new Date() dtf = new Intl.DateTimeFormat("en-US", { hour12: false, timeZone: "America/New_York", year: "numeric", month: "2-digit", day: "2-digit", hour: "2-digit", minute: "2-digit", second: "2-digit", era: "short", }) // from luxon function hackyOffset(dtf, date) { const formatted = dtf.format(date).replace(/\u200E/g, ""), parsed = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted), [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed ?? [] return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond] } const typeToPos = { year: 0, month: 1, day: 2, era: 3, hour: 4, minute: 5, second: 6, } function partsOffset(dtf, date) { const formatted = dtf.formatToParts(date) const filled = new Array(7); for (let i = 0; i < formatted.length; i++) { const { type, value } = formatted[i] const pos = typeToPos[type] if (type === "era") { filled[pos] = value } else if (pos !== undefined) { filled[pos] = parseInt(value, 10) } } return filled }
Tests:
hackyOffset
hackyOffset(dtf, jsDate)
partsOffset
partsOffset(dtf, jsDate)
dtf.formatToParts
dtf.formatToParts(jsDate)
dtf.format
dtf.format(jsDate)