A JavaScript time formatter and parser inspired by strftime and strptime.
npx @tessl/cli install tessl/npm-d3-time-format@4.1.0d3-time-format provides JavaScript time formatting and parsing functionality inspired by the venerable strftime and strptime functions from the C standard library. It enables developers to format dates into locale-specific string representations and parse date strings back into JavaScript Date objects using flexible format specifiers.
npm install d3-time-formatimport { timeFormat, timeParse, utcFormat, utcParse } from "d3-time-format";For CommonJS:
const { timeFormat, timeParse, utcFormat, utcParse } = require("d3-time-format");All exports:
import {
timeFormat,
timeParse,
utcFormat,
utcParse,
timeFormatLocale,
timeFormatDefaultLocale,
isoFormat,
isoParse,
isoSpecifier
} from "d3-time-format";import { timeFormat, timeParse } from "d3-time-format";
// Create a formatter
const formatTime = timeFormat("%B %d, %Y");
formatTime(new Date(2015, 5, 30)); // "June 30, 2015"
// Create a parser
const parseTime = timeParse("%B %d, %Y");
parseTime("June 30, 2015"); // Date object for June 30, 2015
// UTC formatting
import { utcFormat, utcParse } from "d3-time-format";
const formatUTC = utcFormat("%Y-%m-%d");
formatUTC(new Date()); // "2015-06-30"d3-time-format is built around several key components:
Core date/time formatting and parsing using the default locale with support for custom format specifiers.
function timeFormat(specifier: string): (date: Date) => string;
function timeParse(specifier: string): (dateString: string) => Date | null;
function utcFormat(specifier: string): (date: Date) => string;
function utcParse(specifier: string): (dateString: string) => Date | null;Internationalization support with configurable locale definitions for custom date/time formatting rules.
function timeFormatLocale(definition: LocaleDefinition): LocaleObject;
function timeFormatDefaultLocale(definition: LocaleDefinition): LocaleObject;
interface LocaleDefinition {
dateTime: string;
date: string;
time: string;
periods: [string, string];
days: string[];
shortDays: string[];
months: string[];
shortMonths: string[];
}
interface LocaleObject {
format(specifier: string): (date: Date) => string;
parse(specifier: string): (dateString: string) => Date | null;
utcFormat(specifier: string): (date: Date) => string;
utcParse(specifier: string): (dateString: string) => Date | null;
}Specialized utilities for ISO 8601 date format handling with optimized performance.
const isoSpecifier: string;
function isoFormat(date: Date): string;
function isoParse(dateString: string): Date | null;