Date Formats

Some commands allow the user to specify a date, e.g.:

  • backout, commit, import, tag: Specify the commit date.
  • log, revert, update: Select revision(s) by date.

Many date formats are valid. Here are some examples:

  • "Wed Dec 6 13:18:29 2006" (local timezone assumed)
  • "Dec 6 13:18 -0600" (year assumed, time offset provided)
  • "Dec 6 13:18 UTC" (UTC and GMT are aliases for +0000)
  • "Dec 6" (midnight)
  • "13:18" (today assumed)
  • "3:39" (3:39AM assumed)
  • "3:39pm" (15:39)
  • "2006-12-06 13:18:29" (ISO 8601 format)
  • "2006-12-6 13:18"
  • "2006-12-6"
  • "12-6"
  • "12/6"
  • "12/6/6" (Dec 6 2006)
  • "today" (midnight)
  • "yesterday" (midnight)
  • "now" - right now

Lastly, there is Mercurial's internal format:

  • "1165411109 0" (Wed Dec 6 13:18:29 2006 UTC)

This is the internal representation format for dates. The first number is the number of seconds since the epoch (1970-01-01 00:00 UTC). The second is the offset of the local timezone, in seconds west of UTC (negative if the timezone is east of UTC).

The log command also accepts date ranges:

  • "<DATE" - at or before a given date/time
  • ">DATE" - on or after a given date/time
  • "DATE to DATE" - a date range, inclusive
  • "-DAYS" - within a given number of days from today