2012-11-24 03:24:14 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
Copyright 2010 Lennart Poettering
systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http: / / w w w . g n u . o r g / l i c e n s e s /> .
-->
<refentry id= "systemd.time" >
<refentryinfo >
<title > systemd.time</title>
<productname > systemd</productname>
<authorgroup >
<author >
<contrib > Developer</contrib>
<firstname > Lennart</firstname>
<surname > Poettering</surname>
<email > lennart@poettering.net</email>
</author>
</authorgroup>
</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>
2013-06-27 23:51:44 +04:00
<para > In systemd, timestamps, time spans, and calendar
2012-11-24 03:24:14 +04:00
events are displayed and may be specified in closely
related syntaxes.</para>
</refsect1>
<refsect1 >
2013-06-27 23:51:44 +04:00
<title > Displaying Time Spans</title>
2012-11-24 03:24:14 +04:00
2013-06-27 23:51:44 +04:00
<para > Time spans refer to time durations. On display,
systemd will present time spans as a space-separated
2012-11-24 03:24:14 +04:00
series of time values each suffixed by a time
unit.</para>
<programlisting > 2h 30min</programlisting>
<para > All specified time values are meant to be added
up. The above hence refers to 150 minutes.</para>
</refsect1>
<refsect1 >
2013-06-27 23:51:44 +04:00
<title > Parsing Time Spans</title>
2012-11-24 03:24:14 +04:00
2013-06-27 23:51:44 +04:00
<para > When parsing, systemd will accept the same
time span syntax. Separating spaces may be omitted. The
2012-11-24 03:24:14 +04:00
following time units are understood:</para>
<itemizedlist >
<listitem > <para > usec, us</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</para> </listitem>
<listitem > <para > years, year, y</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
2013-06-27 23:51:44 +04:00
granularity of the time span allows for this.</para>
2012-11-24 03:24:14 +04:00
2013-06-27 23:51:44 +04:00
<para > Examples for valid time span specifications:</para>
2012-11-24 03:24:14 +04:00
<programlisting > 2 h
2hours
48hr
1y 12month
55s500ms
300ms20s 5day</programlisting>
</refsect1>
<refsect1 >
<title > Displaying Timestamps</title>
<para > Timestamps refer to specific, unique points in
2013-06-27 23:51:44 +04:00
time. On display, systemd will format these in the
2012-11-24 03:24:14 +04:00
local timezone as follows:</para>
<programlisting > Fri 2012-11-23 23:02:15 CET</programlisting>
2013-06-27 23:51:44 +04:00
<para > The weekday is printed according to the locale
2012-11-24 03:24:14 +04:00
choice of the user.</para>
</refsect1>
<refsect1 >
<title > Parsing Timestamps</title>
<para > When parsing systemd will accept a similar
timestamp syntax, but excluding any timezone
specification (this limitation might be removed
2013-06-27 23:51:44 +04:00
eventually). The weekday specification is optional,
but when the weekday is specified it must either be
2012-11-24 03:24:14 +04:00
in the abbreviated (<literal > Wed</literal> ) or
2013-06-27 23:51:44 +04:00
non-abbreviated (<literal > Wednesday</literal> ) English
2013-08-25 11:01:45 +04:00
language form (case does not matter), and is not
2012-11-24 03:24:14 +04:00
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, resp., 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>
2013-06-27 23:51:44 +04:00
<para > A timestamp is considered invalid if a weekday
2012-11-24 03:24:14 +04:00
is specified and the date does not actually match the
specified day of the week.</para>
2013-06-27 23:51:44 +04:00
<para > When parsing, systemd will also accept a few
2012-11-24 03:24:14 +04:00
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> ,
<literal > tomorrow</literal> refer to 00:00:00 of the
current day, the day before or the next day,
respectively.</para>
2013-06-27 23:51:44 +04:00
<para > When parsing, systemd will also accept relative
time specifications. A time span (see above) that is
2012-11-24 03:24:14 +04:00
prefixed with <literal > +</literal> is evaluated to the
current time plus the specified
2013-06-27 23:51:44 +04:00
time span. Correspondingly, a time span that is prefixed
2012-11-24 03:24:14 +04:00
with <literal > -</literal> is evaluated to the current
2013-06-27 23:51:44 +04:00
time minus the specified time span. Instead of
2013-09-12 23:12:49 +04:00
prefixing the time span with <literal > -</literal> , it
2012-11-24 03:24:14 +04:00
may also be suffixed with a space and the word
<literal > ago</literal> .</para>
<para > Examples for valid timestamps and their
normalized form (assuming the current time was
2012-11-23 18:15:22):</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 → 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
yesterday → Fri 2012-11-22 00:00:00
tomorrow → Fri 2012-11-24 00: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</programlisting>
<para > Note that timestamps printed by systemd will not
be parsed correctly by systemd, as the timezone
specification is not accepted, and printing timestamps
2013-06-27 23:51:44 +04:00
is subject to locale settings for the weekday while
parsing only accepts English weekday names.</para>
2012-11-24 03:24:14 +04:00
2013-06-27 23:51:44 +04:00
<para > In some cases, systemd will display a relative
2012-11-24 03:24:14 +04:00
timestamp (relative to the current time, or the time
of invocation of the command) instead or in addition
to an absolute timestamp as described above. A
relative timestamp is formatted as follows:</para>
<para > 2 months 5 days ago</para>
<para > Note that any relative timestamp will also parse
correctly where a timestamp is expected. (see above)</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, given that it
2013-06-27 23:51:44 +04:00
is a Thursday or Friday.</para>
2012-11-24 03:24:14 +04:00
<para > The weekday specification is optional. If
2013-06-27 23:51:44 +04:00
specified, it should consist of one or more English
language weekday names, either in the abbreviated
2012-11-24 03:24:14 +04:00
(Wed) or non-abbreviated (Wednesday) form (case does
2013-06-29 20:09:14 +04:00
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>
2012-11-24 03:24:14 +04:00
2013-06-27 23:51:44 +04:00
<para > In the date and time specifications, any
2013-06-29 20:09:14 +04:00
component may be specified as <literal > *</literal> in
which case any value will match. Alternatively, each
component can be specified as list of values separated
by commas. Values may also be suffixed with
<literal > /</literal> and a repetition value, which
indicates that the value and all values plus multiples
of the repetition value are matched.</para>
2012-11-24 03:24:14 +04:00
<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
2013-09-12 23:12:49 +04:00
specified, <literal > :00</literal> is assumed.</para>
2012-11-24 03:24:14 +04:00
<para > Timezone names may not be specified.</para>
<para > The special expressions
<literal > hourly</literal> , <literal > daily</literal> ,
<literal > monthly</literal> and <literal > weekly</literal>
may be used as calendar events which refer to
<literal > *-*-* *:00:00</literal> , <literal > *-*-*
00:00:00</literal> , <literal > *-*-01 00:00:00</literal> and
<literal > Mon *-*-* 00:00:00</literal> ,
respectively.</para>
<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
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
2003-03-05 → 2003-03-05 00:00:00
03-05 → *-03-05 00:00:00
hourly → *-*-* *:00:00
daily → *-*-* 00:00:00
monthly → *-*-01 00:00:00
weekly → Mon *-*-* 00:00:00
*:2/3 → *-*-* *:02/3:00</programlisting>
<para > Calendar events are used by timer units, see
2012-11-26 22:04:13 +04:00
<citerefentry > <refentrytitle > systemd.timer</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry>
2012-11-24 03:24:14 +04:00
for details.</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> ,
2013-01-15 07:08:33 +04:00
<citerefentry > <refentrytitle > systemd.unit</refentrytitle> <manvolnum > 5</manvolnum> </citerefentry> ,
<citerefentry > <refentrytitle > systemd.directives</refentrytitle> <manvolnum > 7</manvolnum> </citerefentry>
2012-11-24 03:24:14 +04:00
</para>
</refsect1>
</refentry>