Package Exports
- fast-date-format
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fast-date-format) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
fast-date-format
fast-date-format
is significantly faster than other date formatting modules.
Installation
npm install fast-date-format
Example
const DateFormat = require('fast-date-format');
const dateFormat = new DateFormat('YYYYMMDD');
dateFormat.format();
dateFormat.format(new Date());
Escaping
To escape characters in a format, surround the characters with square brackets.
const dateFormat = new DateFormat('[Month: ]MMMM');
dateFormat.format(); // Month: December
Tokens
Supported formatting tokens:
Token | Example | Description |
---|---|---|
YYYY | 2018 |
Year |
YY | 18 |
2 Digit Year |
MMMM | January..December |
Month name |
MMM | Jan..Dec |
3 letter month name |
MM | 01..12 |
Month |
M | 1..12 |
Month |
HH | 00..23 |
Hours (24 hour time) |
H | 0..23 |
Hours (24 hour time) |
hh | 01..12 |
Hours (12 hour time) |
h | 1..12 |
Hours (12 hour time) |
kk | 01..24 |
Hours (24 hour time) |
k | 1..24 |
Hours (24 hour time) |
A | am , pm |
Post or ante meridiem |
dddd | Monday..Sunday |
Day name |
ddd | Mon..Sun |
3 letter day name |
DDDD | 001..365 |
Day of year |
DDD | 1..365 |
Day of year |
DD | 01..31 |
Day of month |
D | 1..31 |
Day of month |
E | 1..7 |
Day of week |
m | 0..59 |
Minutes |
mm | 00..59 |
Minutes |
s | 0..59 |
Seconds |
ss | 00..59 |
Seconds |
SSS | 000..999 |
Milliseconds |
ZZ | -02:00 |
Offset from UTC |
Z | -0200 |
Offset from UTC |
x | 1528643900952 |
Unix timestamp in ms |
API
DateFormat(options)
Creates a new date formatter.
options
Either a date format as a string or an object with the following properties:
dateFormat
A date format as a string.
cache (optional)
Enables caching to increase formatting speed if set to true
. Defaults to false
.
DateFormat#format([date])
Formats the date
according to the dateFormat
. If no date is passed the current date is used.
DateFormat#addLocale(language, data)
Adds translations for the names of months and weekdays.
dateFormat.addLocale('en', {
weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
months: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
})
Three letter abbreviations of the names are being generated from the months and weekdays.
DateFormat#setLocale(language)
Changes the locale of the DateFormat
instace to language
. Build-in languages: en
& de
.
dateFormat.addLocale('en')
Benchmark
The benchmark has been run with Node.js v10.16.3.
$ node benchmark/benchmark.js
moment x 268,396 ops/sec ±0.87% (88 runs sampled)
date-format x 380,505 ops/sec ±0.42% (91 runs sampled)
dateformat x 99,375 ops/sec ±0.91% (87 runs sampled)
fast-date-format x 1,116,499 ops/sec ±0.57% (86 runs sampled)
fecha x 230,543 ops/sec ±0.93% (93 runs sampled)
speed-date x 1,083,871 ops/sec ±0.65% (91 runs sampled)
date-fns x 101,370 ops/sec ±1.18% (89 runs sampled)
Fastest is fast-date-format
With activated cache
option:
$ node benchmark/benchmarkCache.js
moment x 356,945 ops/sec ±0.92% (84 runs sampled)
date-format x 404,826 ops/sec ±0.63% (86 runs sampled)
dateformat x 111,103 ops/sec ±1.03% (86 runs sampled)
fast-date-format x 2,618,465 ops/sec ±0.90% (90 runs sampled)
fecha x 306,050 ops/sec ±0.51% (91 runs sampled)
speed-date x 1,950,085 ops/sec ±0.82% (86 runs sampled)
date-fns x 150,776 ops/sec ±0.47% (88 runs sampled)
Fastest is fast-date-format