Skip to content

Instantly share code, notes, and snippets.

@trungnt13
Last active May 18, 2023 17:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trungnt13/a6c222b4e3f10b2e65364cdf1f2bb1cb to your computer and use it in GitHub Desktop.
Save trungnt13/a6c222b4e3f10b2e65364cdf1f2bb1cb to your computer and use it in GitHub Desktop.
[CheatSheet] Foam / Node Date Format

DateFormat

Node date format

Foam Daily Note

These settings can be overridden in your workspace or global .vscode/settings.json file, using the dateformat date masking syntax:

Template at .foam/templates/daily-note.md

Name Description
FOAM_SELECTED_TEXT Foam will fill it with selected text
FOAM_TITLE If used, Foam will prompt you to enter a title for the note.
FOAM_SLUG If used, Foam will prompt you to enter a title for the note unless FOAM_TITLE has already caused the prompt.
FOAM_DATE_* FOAM_DATE_YEAR, FOAM_DATE_MONTH, FOAM_DATE_WEEK etc.

Mask options

  • d: Day of the month as digits; no leading zero for single-digit days.

  • dd: Day of the month as digits; leading zero for single-digit days.

  • ddd: Day of the week as a three-letter abbreviation.

  • DDD: "Ysd", "Tdy" or "Tmw" if date lies within these three days. Else fall back to ddd.

  • dddd: Day of the week as its full name.

  • DDDD: "Yesterday", "Today" or "Tomorrow" if date lies within these three days. Else fall back to dddd.

  • m: Month as digits; no leading zero for single-digit months.

  • mm: Month as digits; leading zero for single-digit months.

  • mmm: Month as a three-letter abbreviation.

  • mmmm: Month as its full name.

  • yy: Year as last two digits; leading zero for years less than 10.

  • yyyy: Year represented by four digits.

  • h: Hours; no leading zero for single-digit hours (12-hour clock).

  • hh: Hours; leading zero for single-digit hours (12-hour clock).

  • H: Hours; no leading zero for single-digit hours (24-hour clock).

  • HH: Hours; leading zero for single-digit hours (24-hour clock).

  • M: Minutes; no leading zero for single-digit minutes.

  • MM: Minutes; leading zero for single-digit minutes.

  • N: ISO 8601 numeric representation of the day of the week.

  • o: GMT/UTC timezone offset, e.g. -0500 or +0230.

  • p: GMT/UTC timezone offset, e.g. -05:00 or +02:30.

  • s: Seconds; no leading zero for single-digit seconds.

  • ss: Seconds; leading zero for single-digit seconds.

  • S: The date's ordinal suffix (st, nd, rd, or th). Works well with d.

  • l: Milliseconds; gives 3 digits.

  • L: Milliseconds; gives 2 digits.

  • t: Lowercase, single-character time marker string: a or p.

  • tt: Lowercase, two-character time marker string: am or pm.

  • T: Uppercase, single-character time marker string: A or P.

  • TT: Uppercase, two-character time marker string: AM or PM.

  • W: ISO 8601 week number of the year, e.g. 4, 42

  • WW: ISO 8601 week number of the year, leading zero for single-digit, e.g. 04, 42

  • Z: US timezone abbreviation, e.g. EST or MDT. For non-US timezones, the GMT/UTC offset is returned, e.g. GMT-0500

  • '...', "...": Literal character sequence. Surrounding quotes are removed.

  • UTC:: Must be the first four characters of the mask. Converts the date from local time to UTC/GMT/Zulu time before applying the mask. The "UTC:" prefix is removed.

Named Formats

Name Mask Example
default ddd mmm dd yyyy HH:MM:ss Sat Jun 09 2007 17:46:21
shortDate m/d/yy 6/9/07
paddedShortDate mm/dd/yyyy 06/09/2007
mediumDate mmm d, yyyy Jun 9, 2007
longDate mmmm d, yyyy June 9, 2007
fullDate dddd, mmmm d, yyyy Saturday, June 9, 2007
shortTime h:MM TT 5:46 PM
mediumTime h:MM:ss TT 5:46:21 PM
longTime h:MM:ss TT Z 5:46:21 PM EST
isoDate yyyy-mm-dd 2007-06-09
isoTime HH:MM:ss 17:46:21
isoDateTime yyyy-mm-dd'T'HH:MM:sso 2007-06-09T17:46:21+0700
isoUtcDateTime UTC:yyyy-mm-dd'T'HH:MM:ss'Z' 2007-06-09T22:46:21Z

Localization

Day names, month names and the AM/PM indicators can be localized by passing an object with the necessary strings. For example:

import { i18n } from "dateformat";

i18n.dayNames = [
  "Sun",
  "Mon",
  "Tue",
  "Wed",
  "Thu",
  "Fri",
  "Sat",
  "Sunday",
  "Monday",
  "Tuesday",
  "Wednesday",
  "Thursday",
  "Friday",
  "Saturday",
];

i18n.monthNames = [
  "Jan",
  "Feb",
  "Mar",
  "Apr",
  "May",
  "Jun",
  "Jul",
  "Aug",
  "Sep",
  "Oct",
  "Nov",
  "Dec",
  "January",
  "February",
  "March",
  "April",
  "May",
  "June",
  "July",
  "August",
  "September",
  "October",
  "November",
  "December",
];

i18n.timeNames = ["a", "p", "am", "pm", "A", "P", "AM", "PM"];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment