Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
hello amila 2
(version: 1)
Comparing performance of:
hackyOffset vs partsOffset vs dtf.formatToParts vs dtf.format
Created:
2 years ago
by:
Registered User
Jump to the latest result
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)
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (4)
Previous results
Fork
Test case name
Result
hackyOffset
partsOffset
dtf.formatToParts
dtf.format
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
2 years ago
)
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/OS:
Safari 17 on Mac OS X 10.15.7
View result in a separate tab
Embed
Embed Benchmark Result
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
Related benchmarks:
luxon-v-Intl format, luxon-v-Date native parse
luxon-v-Intl-v-datefns format, luxon-v-Date-v-datefns native parse
dayjs vs luxon vs js-joda vs date-fns (calculating)
Intl.DateTimeFormat formatToParts vs. format then regex
Comments
Confirm delete:
Do you really want to delete benchmark?