<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd.time">

  <refentryinfo>
    <title>systemd.time</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd.time</refentrytitle>
    <manvolnum>7</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd.time</refname>
    <refpurpose>Time and date specifications</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Description</title>

    <para>In systemd, timestamps, time spans, and calendar events are
    displayed and may be specified in closely related syntaxes.</para>
  </refsect1>

  <refsect1>
    <title>Displaying Time Spans</title>

    <para>Time spans refer to time durations. On display, systemd will present time spans as a space-separated series
    of time values each suffixed by a time unit. Example:</para>

    <programlisting>2h 30min</programlisting>

    <para>All specified time values are meant to be added up. The above hence refers to 150 minutes. Display is
    locale-independent, only English names for the time units are used.</para>
  </refsect1>

  <refsect1>
    <title>Parsing Time Spans</title>

    <para>When parsing, systemd will accept the same time span syntax.
    Separating spaces may be omitted. The following time units are
    understood:</para>

    <itemizedlist>
      <listitem><para>usec, us, µs</para></listitem>
      <listitem><para>msec, ms</para></listitem>
      <listitem><para>seconds, second, sec, s</para></listitem>
      <listitem><para>minutes, minute, min, m</para></listitem>
      <listitem><para>hours, hour, hr, h</para></listitem>
      <listitem><para>days, day, d</para></listitem>
      <listitem><para>weeks, week, w</para></listitem>
      <listitem><para>months, month, M (defined as 30.44 days)</para></listitem>
      <listitem><para>years, year, y (defined as 365.25 days)</para></listitem>
    </itemizedlist>

    <para>If no time unit is specified, generally seconds are assumed, but some exceptions exist and are marked as
    such. In a few cases <literal>ns</literal>, <literal>nsec</literal> is accepted too, where the granularity of the
    time span permits this. Parsing is generally locale-independent, non-English names for the time units are not
    accepted.</para>

    <para>Examples for valid time span specifications:</para>

    <programlisting>2 h
2hours
48hr
1y 12month
55s500ms
300ms20s 5day</programlisting>

    <para>One can use the <command>timespan</command> command of
    <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    to normalise a textual time span for testing and validation purposes.</para>

    <para>Internally, systemd generally operates with microsecond time granularity, while the default time
    unit in user-configurable time spans is usually seconds (see above). This disparity becomes visible when
    comparing the same settings in the (high-level) unit file syntax with the matching (more low-level) D-Bus
    properties (which are what
    <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
    <command>show</command> command displays). The former typically are suffixed with <literal>…Sec</literal>
    to indicate the default unit of seconds, the latter are typically suffixed with <literal>…USec</literal>
    to indicate the underlying low-level time unit, even if they both encapsulate the very same
    settings.</para>
  </refsect1>

  <refsect1>
    <title>Displaying Timestamps</title>

    <para>Timestamps refer to specific, unique points in time. On
    display, systemd will format these in the local timezone as
    follows:</para>

    <programlisting>Fri 2012-11-23 23:02:15 CET</programlisting>

    <para>The weekday is printed in the abbreviated English language form. The formatting is locale-independent.</para>

    <para>In some cases timestamps are shown in the UTC timezone instead of the local timezone, which is indicated via
    the <literal>UTC</literal> timezone specifier in the output.</para>

    <para>In some cases timestamps are shown with microsecond granularity. In this case the sub-second remainder is
    separated by a full stop from the seconds component.</para>
  </refsect1>

  <refsect1>
    <title>Parsing Timestamps</title>

    <para>When parsing, systemd will accept a similar syntax, but expects no timezone specification, unless
    it is given as the literal string <literal>UTC</literal> (for the UTC timezone), or is specified to be
    the locally configured timezone, or the timezone name in the IANA timezone database format. The complete
    list of timezones supported on your system can be obtained using the <literal>timedatectl
    list-timezones</literal> (see
    <citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>).  Using
    IANA format is recommended over local timezone names, as less prone to errors (e.g. with local timezone
    it's possible to specify daylight saving time in winter, even though that is not correct). The weekday
    specification is optional, but when the weekday is specified, it must either be in the abbreviated
    (<literal>Wed</literal>) or non-abbreviated (<literal>Wednesday</literal>) English language form (case
    does not matter), and is not subject to the locale choice of the user. Either the date, or the time part
    may be omitted, in which case the current date or 00:00:00, respectively, is assumed. The seconds
    component of the time may also be omitted, in which case ":00" is assumed. Year numbers may be specified
    in full or may be abbreviated (omitting the century).</para>

    <para>A timestamp is considered invalid if a weekday is specified and the date does not match the specified day of
    the week.</para>

    <para>When parsing, systemd will also accept a few special
    placeholders instead of timestamps: <literal>now</literal> may be
    used to refer to the current time (or of the invocation of the
    command that is currently executed). <literal>today</literal>,
    <literal>yesterday</literal>, and <literal>tomorrow</literal> refer to
    00:00:00 of the current day, the day before, or the next day,
    respectively.</para>

    <para>When parsing, systemd will also accept relative time
    specifications. A time span (see above) that is prefixed with
    <literal>+</literal> is evaluated to the current time plus the
    specified time span. Correspondingly, a time span that is prefixed
    with <literal>-</literal> is evaluated to the current time minus
    the specified time span. Instead of prefixing the time span with
    <literal>+</literal> or <literal>-</literal>, it may also be
    suffixed with a space and the word <literal>left</literal> or
    <literal>ago</literal>.</para>

    <para>Finally, a timespan prefixed with <literal>@</literal> is
    evaluated relative to the UNIX time epoch 1st Jan, 1970,
    00:00.</para>

    <para>Examples for valid timestamps and their normalized form (assuming the current time was 2012-11-23
    18:15:22 and the timezone was UTC+8, for example <literal>TZ=:Asia/Shanghai</literal>):</para>

    <programlisting>  Fri 2012-11-23 11:12:13 → Fri 2012-11-23 11:12:13
      2012-11-23 11:12:13 → Fri 2012-11-23 11:12:13
  2012-11-23 11:12:13 UTC → Fri 2012-11-23 19:12:13
               2012-11-23 → Fri 2012-11-23 00:00:00
                 12-11-23 → Fri 2012-11-23 00:00:00
                 11:12:13 → Fri 2012-11-23 11:12:13
                    11:12 → Fri 2012-11-23 11:12:00
                      now → Fri 2012-11-23 18:15:22
                    today → Fri 2012-11-23 00:00:00
                today UTC → Fri 2012-11-23 16:00:00
                yesterday → Fri 2012-11-22 00:00:00
                 tomorrow → Fri 2012-11-24 00:00:00
tomorrow Pacific/Auckland → Thu 2012-11-23 19:00:00
                 +3h30min → Fri 2012-11-23 21:45:22
                      -5s → Fri 2012-11-23 18:15:17
                11min ago → Fri 2012-11-23 18:04:22
              @1395716396 → Tue 2014-03-25 03:59:56</programlisting>

    <para>Note that timestamps displayed by remote systems with a non-matching timezone are usually not parsable
    locally, as the timezone component is not understood (unless it happens to be <literal>UTC</literal>).</para>

    <para>Timestamps may also be specified with microsecond granularity. The sub-second remainder is expected separated
    by a full stop from the seconds component. Example:</para>

    <programlisting>2014-03-25 03:59:56.654563</programlisting>

    <para>In some cases, systemd will display a relative timestamp (relative to the current time, or the time of
    invocation of the command) instead of or in addition to an absolute timestamp as described above. A relative
    timestamp is formatted as follows:</para>

    <programlisting>2 months 5 days ago</programlisting>

    <para>Note that a relative timestamp is also accepted where a timestamp is expected (see above).</para>

    <para>Use the <command>timestamp</command> command of
    <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry> to
    validate and normalize timestamps for testing purposes.</para>
  </refsect1>

  <refsect1>
    <title>Calendar Events</title>

    <para>Calendar events may be used to refer to one or more points
    in time in a single expression. They form a superset of the
    absolute timestamps explained above:</para>

    <programlisting>Thu,Fri 2012-*-1,5 11:12:13</programlisting>

    <para>The above refers to 11:12:13 of the first or fifth day of
    any month of the year 2012, but only if that day is a Thursday or
    Friday.</para>

    <para>The weekday specification is optional. If specified, it
    should consist of one or more English language weekday names,
    either in the abbreviated (Wed) or non-abbreviated (Wednesday)
    form (case does not matter), separated by commas. Specifying two
    weekdays separated by <literal>..</literal> refers to a range of
    continuous weekdays. <literal>,</literal> and <literal>..</literal>
    may be combined freely.</para>

    <para>In the date and time specifications, any component may be specified as <literal>*</literal> in
    which case any value will match. Alternatively, each component can be specified as a list of values
    separated by commas. Values may be suffixed with <literal>/</literal> and a repetition value, which
    indicates that the value itself and the value plus all multiples of the repetition value are matched.
    Two values separated by <literal>..</literal> may be used to indicate a range of values; ranges may also
    be followed with <literal>/</literal> and a repetition value, in which case the expression matches all
    times starting with the start value, and continuing with all multiples of the repetition value relative
    to the start value, ending at the end value the latest.</para>

    <para>A date specification may use <literal>~</literal> to indicate the last day in a month. For example,
    <literal>*-02~03</literal> means "the third last day in February," and <literal>Mon *-05~07/1</literal>
    means "the last Monday in May."</para>

    <para>The seconds component may contain decimal fractions both in
    the value and the repetition. All fractions are rounded to 6
    decimal places.</para>

    <para>Either time or date specification may be omitted, in which
    case the current day and 00:00:00 is implied, respectively. If the
    second component is not specified, <literal>:00</literal> is
    assumed.</para>

    <para>Timezone can be specified as the literal string <literal>UTC</literal>, or
    the local timezone, similar to the supported syntax of timestamps (see above), or the timezone
    in the IANA timezone database format (also see above).</para>

  <para>The following special expressions may be used as shorthands for longer normalized forms:</para>

    <programlisting>    minutely → *-*-* *:*:00
      hourly → *-*-* *:00:00
       daily → *-*-* 00:00:00
     monthly → *-*-01 00:00:00
      weekly → Mon *-*-* 00:00:00
      yearly → *-01-01 00:00:00
   quarterly → *-01,04,07,10-01 00:00:00
semiannually → *-01,07-01 00:00:00
   </programlisting>

    <para>Examples for valid timestamps and their
    normalized form:</para>

<programlisting>  Sat,Thu,Mon..Wed,Sat..Sun → Mon..Thu,Sat,Sun *-*-* 00:00:00
      Mon,Sun 12-*-* 2,1:23 → Mon,Sun 2012-*-* 01,02:23:00
                    Wed *-1 → Wed *-*-01 00:00:00
           Wed..Wed,Wed *-1 → Wed *-*-01 00:00:00
                 Wed, 17:48 → Wed *-*-* 17:48:00
Wed..Sat,Tue 12-10-15 1:2:3 → Tue..Sat 2012-10-15 01:02:03
                *-*-7 0:0:0 → *-*-07 00:00:00
                      10-15 → *-10-15 00:00:00
        monday *-12-* 17:00 → Mon *-12-* 17:00:00
  Mon,Fri *-*-3,1,2 *:30:45 → Mon,Fri *-*-01,02,03 *:30:45
       12,14,13,12:20,10,30 → *-*-* 12,13,14:10,20,30:00
            12..14:10,20,30 → *-*-* 12..14:10,20,30:00
  mon,fri *-1/2-1,3 *:30:45 → Mon,Fri *-01/2-01,03 *:30:45
             03-05 08:05:40 → *-03-05 08:05:40
                   08:05:40 → *-*-* 08:05:40
                      05:40 → *-*-* 05:40:00
     Sat,Sun 12-05 08:05:40 → Sat,Sun *-12-05 08:05:40
           Sat,Sun 08:05:40 → Sat,Sun *-*-* 08:05:40
           2003-03-05 05:40 → 2003-03-05 05:40:00
 05:40:23.4200004/3.1700005 → *-*-* 05:40:23.420000/3.170001
             2003-02..04-05 → 2003-02..04-05 00:00:00
       2003-03-05 05:40 UTC → 2003-03-05 05:40:00 UTC
                 2003-03-05 → 2003-03-05 00:00:00
                      03-05 → *-03-05 00:00:00
                     hourly → *-*-* *:00:00
                      daily → *-*-* 00:00:00
                  daily UTC → *-*-* 00:00:00 UTC
                    monthly → *-*-01 00:00:00
                     weekly → Mon *-*-* 00:00:00
    weekly Pacific/Auckland → Mon *-*-* 00:00:00 Pacific/Auckland
                     yearly → *-01-01 00:00:00
                   annually → *-01-01 00:00:00
                      *:2/3 → *-*-* *:02/3:00</programlisting>

      <para>Calendar events are used by timer units, see
      <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>
      for details.</para>

      <para>Use the <command>calendar</command> command of
      <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry> to validate
      and normalize calendar time specifications for testing purposes. The tool also calculates when a specified
      calendar event would occur next.</para>
  </refsect1>

  <refsect1>
      <title>See Also</title>
      <para>
        <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd-analyze</refentrytitle><manvolnum>1</manvolnum></citerefentry>
      </para>
  </refsect1>

</refentry>
