SYSTEMD.TIME(7) systemd.time SYSTEMD.TIME(7)

systemd.time - Zeit- und Datumsspezifikationen

In Systemd werden Zeitstempel, Zeitspannen und Kalenderereignisse angezeigt und können in eng verwandten Syntaxen festgelegt werden.

Zeitspannen beziehen sich auf Zeitdauern. Bei der Anzeige wird Systemd Zeitspannen als durch Leerzeichen getrennte Serien von Zeitwerten darstellen, an die jeweils eine Zeiteinheit angehängt ist. Beispiel:

2h 30min

Alle festgelegten Zeitwerte sind zum Addieren gedacht. Obiges bezieht sich daher auf 150 Minuten. Die Anzeige hängt nicht von der Locale ab, es werden nur englische Namen für die Zeiteinheiten verwandt.

Bei der Auswertung akzeptiert Systemd die gleiche Zeitspannensyntax. Trennende Leerzeichen können weggelassen werden. Die folgenden Zeiteinheiten werden verstanden:

•usec, us, μs
•msec, ms
•seconds, second, sec, s
•minutes, minute, min, m
•hours, hour, hr, h
•days, day, d
•weeks, week, w
•months, month, M (defiert als 30.44 Tage)
•years, year, y (definiert als 365.25 Tage)

Falls keine Zeiteinheit festgelegt ist, wird im Allgemeinen Sekunden angenommen, aber einige Ausnahmen existieren und sind als solche gekennzeichnet. In ein paar Fällen, wo die Granularität der Zeitspanne dies erlaubt, werden auch »ns« und »nsec« akzeptiert. Die Auswertung ist im Allgemeinen unabhängig von der Locale, übersetzte Namen für die Zeiteinheiten werden nicht akzeptiert.

Beispiele für gültige Zeitspannenspezifikationen:

2 h
2hours
48hr
1y 12month
55s500ms
300ms20s 5day

Zur Normierung einer textuellen Zeitspanne und zu Überprüfungszwecken kann der Befehl timespan von systemd-analyze(1) verwandt werden.

Intern arbeitet Systemd mit einer Mikrosekundengenauigkeit, während die Standardzeiteinheit in benutzerkonfigurierbaren Zeitdauern normalerweise Sekunden ist (siehe oben). Dieser Unterschied wird bemerkbar, wenn die gleichen Einstellungen in der (abstrakten) Unit-Datei-Syntax mit der passenden (systemnäheren) D-Bus-Eigenschaft verglichen wird, die der Befehl show von systemctl(1) anzeigt. Der Ersteren wird normalerweise »…Sec« angehängt, um die Standardeinheit Sekunden anzuzeigen, dem Letzteren typischerweise »…USec«, um die zugrundeliegende systemnahe Zeiteinheit anzuzeigen, selbst falls beide die genau gleichen Einstellungen kapseln.

Zeitstempel beziehen sich auf bestimmte, eindeutige Zeitpunkte. Bei der Anzeige wird Systemd diese in der lokalen Zeitzone wie folgt formatieren:

Fri 2012-11-23 23:02:15 CET

Der Wochentag wird in der abgekürzten englischen Sprachform angezeigt. Die Formatierung ist unabhängig von der Locale.

In bestimmten Fällen werden die Zeitstempel in der Zeitzone UTC (Weltzeit) statt in der lokalen Zeitzone angezeigt, was durch die Angabe »UTC« in der Ausgabe angezeigt wird.

In bestimmten Fällen werden die Zeitstempel mit einer Mikrosekundengenauigkeit angezeigt. In diesem Fall wird der Sekundenbruchteil durch einen Punkt von der Sekundenkomponente getrennt.

Bei der Auswertung wird Systemd eine ähnliche Syntax akzeptieren, aber einige Felder können ausgelassen werden und das Leerzeichen zwischen dem Datum und der Uhrzeit kann durch ein »T« ersetzt werden (entsprechend des ISO-8601-Profils aus RFC 3339[1]); daher sind in MEZ alle folgenden Varianten identisch: »Fri 2012-11-23 23:02:15 CET«, »Fri 2012-11-23T23:02:15«, »2012-11-23T23:02:15 CET«, »2012-11-23 23:02:15«.

Falls nicht explizit angegeben ist die Vorgabe für die Zeitzone die aktuelle Zeitzone. Sie kann nach einem Leerzeichen, wie oben, angegeben werden und dann »UTC«, ein Eintrag aus der installierten IANA-Zeitzonen-Datenbank (»CET«, »Asia/Tokyo«, &c.; die vollständige Liste kann mit »timedatectl list-timezones« erhalten werden (siehe timedatectl(1))) oder »±05«, »±0530«, »±05:30«, »Z« sein.

Sie kann auch direkt am Zeitstempel befestigt werden. Dann muss sie einem der in RFC 3339[1] definierten Profile der ISO 8601 entsprechen: »±05:30« oder »Z«. Daher sind folgende Ausdrücke auch zu obigem identisch: »2012-11-23T23:02:15+01:00«, »2012-11-23 22:02:15Z«.

Ein Zeitstempel kann mit einem Feld, das den Wochentag enthält, beginnen. Dieser kann, unabhängig der Locale, in abgekürzter (»Wed«) oder vollständiger (»Wednesday«) englischer Sprachform sein (Groß-/Kleinschreibung ist egal). Passt der Wochentag nicht zum Datum, wird der Zeitstempel zurückgewiesen, wenn der Wochentag angegeben ist.

Falls das Datum ausgelassen wird, ist die Vorgabe heute. Falls die Zeit ausgelassen wird, ist die Vorgabe 00:00:00. Sekundenbruchteile können bis hinunter zur 1µs-Genauigkeit angegeben werden. Das Sekundenfeld kann ausgelassen werden, die Vorgabe ist 0.

Es gibt besondere Merkmale, die anstelle von Zeitstempeln verwandt werden können: »now« kann zur Bezeichnung der aktuellen Zeit (oder zum Aufruf des Befehls, der derzeit ausgeführt wird) verwandt werden. »today«, »yesterday« und »tomorrow« beziehen sich auf 00:00:00 des aktuellen Tages, des Vortages bzw. des nächsten Tages.

Es werden auch relative Zeitangaben akzeptiert: Eine Zeitdauer (siehe oben), der »+« vorangestellt ist, wird auf die aktuelle Zeit plus der festgelegten Zeitdauer ausgewertet. Entsprechend wird eine Zeitdauer, der »-« vorangestellt ist, auf die aktuelle Zeit minus der festgelegten Zeitdauer evaluiert. Anstatt vor die Zeitdauer »+« oder »-« zu stellen, kann ihr auch ein Leerzeichen und das Wort »left« oder »ago« angehängt werden.

Schließlich wird eine Ganzahl, der »@« vorangestellt ist, relativ zu der UNIX-Epoch 1.Januar 1970, 00:00:00 GMT, evaluiert.

Beispiele für gültige Zeitstempel und ihre normierte Form (unter der Annahme, das die aktuelle Zeit 2012-11-23 18:15:22 und die Zeitzone UTC+8, beispielsweise »TZ=Asia/Shanghai«, ist):

  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-23T11:12:13Z → Fri 2012-11-23 19:12:13
   2012-11-23T11:12+02:00 → Fri 2012-11-23 17:12:00
               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

Beachten Sie, dass Zeitstempel, die von Systemen in der Ferne mit einer unpassenden Zeitzone angezeigt werden, normalerweise lokal nicht auswertbar sind, da die Zeitzonenkomponente nicht verstanden wird (außer sie ist »UTC«).

Zeitzonen können auch mit Mikrosekundengenauigkeit festgelegt werden. Es wird erwartet, dass der Sekundenbruchteil durch einen Satzpunkt von der Sekundenkomponente abgetrennt ist. Beispiel:

2014-03-25 03:59:56.654563

In einigen Fällen wird Systemd einen relativen Zeitstempel anzeigen (relativ zu der aktuellen Zeit oder zu dem Aufrufzeitpunkt des Befehls), statt als absoluter Zeitstempel (oder als Addition zu diesem wie oben beschrieben). Ein relativer Zeitstempel ist wie folgt formatiert:

2 months 5 days ago

Beachten Sie, dass ein relativer Zeitstempel auch akzeptiert wird, wo ein Zeitstempel erwartet wird (siehe oben).

Verwendet den Befehl timestamp von systemd-analyze(1), um Zeitstempel zu Testzwecken zu validieren und normieren.

Kalenderereignisse können als Referenz auf einen oder mehrere Zeitpunkte in einem einzigen Ausdruck verwandt werden. Sie stellen eine Obermenge der oben erklärten absoluten Zeitstempel dar:

Thu,Fri 2012-*-1,5 11:12:13

Vorheriges bezieht sich auf 11:12:13 vom ersten oder fünften Tag des Monats des Jahres 2012, aber nur falls dieser Tag ein Donnerstag oder Freitag ist.

Die Wochentagangabe ist optional. Falls angegeben, sollte sie aus einem oder mehreren Wochentagnamen auf englisch bestehen, entweder in der abgekürzten (Wed) oder nicht abgekürzten (Wednesday) Form (Groß-/Kleinschreibung ist egal), getrennt durch Kommata. Werden zwei Wochentage, getrennt durch »..«, festgelegt, bezieht sich das auf einen Bereich fortlaufender Wochentage. »,« und »..« können frei kombiniert werden.

In der Datums- und Zeitangabe kann jede Komponente als »*« spezifiziert werden. In diesem Fall wird jeder Wert passen. Alternativ kann jede Komponente als durch Kommata getrennte Liste von Werten festgelegt werden. Den Werten kann »/« und ein Wiederholungswert angehängt werden, der anzeigt, dass der Wert selber und der Wert plus alle Vielfachen des Wiederholungswertes passen. Zwei durch »..« getrennte Werte können verwandt werden, um einen Wertebereich anzuzeigen; an Bereiche kann auch ein »/« und ein Wiederholungswert angehängt werden. In letzterem Fall passt der Ausdruck auf alle Zeiten, die mit dem Startwert beginnen und mit allen Vielfachen des Wiederholungswertes für den Startwert fortfahren und spätestens beim Endwert enden.

Eine Datumsangabe darf »~« verwenden, um den letzten Tag eines Monats anzuzeigen. Beispielsweise bedeutet »*-02~03« »der drittletzte Tag im Februar« und »Mon *-05~07/1« bedeutet »der letzte Montag im Mai«.

Die zweite Komponente darf dezimale Bruchteile sowohl im Wert als auch in der Wiederholung enthalten. Alle Nachkommastellen werden auf 6 Dezimalstellen gerundet.

Die Angabe entweder der Zeit oder des Datums darf entfallen. In diesem Fall wird *-*-* bzw. 00:00:00 impliziert. Falls die Sekunden-Komponente nicht festgelegt ist, wird »:00« angenommen.

Zeitzonen können als wörtliche Zeichenkette »UTC« oder als lokale Zeitzone festgelegt werden, ähnlich der unterstützten Syntax von Zeitstempeln (siehe oben) oder der Zeitzone in dem IANA-Zeitzonendatenbankformat (siehe auch oben).

Die folgenden besonderen Ausdrücke können als Abkürzungen für längere normierte Formen verwandt werden:

    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

Beispiele für gültige Zeitstempel und ihre normierte Form:

  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

Kalenderereignisse werden von Timer-Units verwandt, siehe systemd.timer(5) für Details.

Verwenden Sie den Befehl calendar von systemd-analyze(1), um Kalenderzeitangaben zu Testzwecken zu prüfen und zu normieren. Das Werkzeug berechnet auch, wann ein festgelegtes Kalenderereignis als nächstes eintreten würde.

systemd(1), journalctl(1), systemd.timer(5), systemd.unit(5), systemd.directives(7), systemd-analyze(1)

1.
RFC 3339

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.

systemd 255