or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

calendar.mdcomponents.mddate-creation.mdformatting.mdindex.mdlocalization.mdmanipulation.mdvalidation-comparison.md
tile.json

date-creation.mddocs/

Date Creation and Conversion

This capability provides comprehensive methods for creating Moment date objects from various input sources and converting between different date representations.

Constructor

constructor(options?: {
  formats?: Partial<DateIOFormats>;
  locale?: string;
  instance?: any;
})

Creates a new MomentUtils instance with optional configuration.

Parameters:

  • options.formats - Custom format strings to override defaults
  • options.locale - Locale code for localized formatting (e.g., "en", "fr", "de")
  • options.instance - Custom moment.js instance to use instead of default

Usage:

// Default instance
const utils = new MomentUtils();

// With locale
const utils = new MomentUtils({ locale: "fr" });

// With custom formats
const utils = new MomentUtils({
  formats: {
    fullDate: "DD/MM/YYYY",
    shortDate: "DD/MM"
  }
});

Date Creation

date<
  TArg extends unknown = undefined,
  TRes extends unknown = TArg extends null
    ? null
    : TArg extends undefined
    ? defaultMoment.Moment
    : defaultMoment.Moment | null
>(value?: TArg): TRes

Creates a Moment date object from various input types. Supports generic type inference for null handling.

Parameters:

  • value - Input value (ISO string, Date object, timestamp, or undefined for current date)

Returns: Moment object, null if input is null, or Moment | null if input could be invalid

Usage:

const now = utils.date(); // Current date/time
const fromISO = utils.date("2023-10-30T14:30:00.000Z");
const fromDate = utils.date(new Date());
const fromTimestamp = utils.date(1698672600000);
const nullable = utils.date(null); // Returns null

ISO String Parsing

parseISO(isoString: string): Moment

Parses an ISO 8601 date string into a Moment object with strict validation.

Parameters:

  • isoString - ISO 8601 formatted date string

Returns: Moment object

Usage:

const date = utils.parseISO("2023-10-30T14:30:00.000Z");
const dateOnly = utils.parseISO("2023-10-30");

Custom Format Parsing

parse(value: string, format: string): Moment | null

Parses a date string using a custom format pattern. Returns null for empty strings or invalid dates.

Parameters:

  • value - Date string to parse
  • format - Moment.js format string (e.g., "YYYY-MM-DD", "DD/MM/YYYY HH:mm")

Returns: Moment object or null if parsing fails

Usage:

const date1 = utils.parse("30/10/2023", "DD/MM/YYYY");
const date2 = utils.parse("2023-10-30 14:30", "YYYY-MM-DD HH:mm");
const invalid = utils.parse("", "YYYY-MM-DD"); // Returns null
const withLocale = utils.parse("30 octobre 2023", "DD MMMM YYYY"); // If locale is "fr"

ISO String Conversion

toISO(value: Moment): string

Converts a Moment object to an ISO 8601 string representation.

Parameters:

  • value - Moment object to convert

Returns: ISO 8601 formatted string

Usage:

const moment = utils.date("2023-10-30T14:30:00.000Z");
const isoString = utils.toISO(moment); // "2023-10-30T14:30:00.000Z"

JavaScript Date Conversion

toJsDate(value: Moment): Date

Converts a Moment object to a native JavaScript Date object.

Parameters:

  • value - Moment object to convert

Returns: JavaScript Date object

Usage:

const moment = utils.date("2023-10-30T14:30:00.000Z");
const jsDate = utils.toJsDate(moment);
console.log(jsDate instanceof Date); // true

Properties

lib: string; // Always "moment"
moment: typeof import("moment"); // Moment.js instance
locale?: string; // Current locale code
formats: DateIOFormats; // Current format configuration

The utility exposes several read-only properties for inspection:

Usage:

const utils = new MomentUtils({ locale: "fr" });
console.log(utils.lib); // "moment"
console.log(utils.locale); // "fr"
console.log(utils.formats.fullDate); // "ll" (or custom if overridden)