Der date
Befehl bietet so etwas nicht an, was irgendwie traurig ist, da RFC-3339 das moderne, weitverbreitete, vernünftige Format ist, das überall verwendet wird (außer in E-Mails, die weder modern noch vernünftig sind).
Mein Zeitzonen-Offset ist derzeit -08: 00, daher sollte die einfachste Form dieses Befehls die aktuelle Zeit als ausgeben 2013-09-05T14:58:33.102-08:00
.
2013-09-05 14:58:33.102 -0800
denn, es gibt einen Grund, warum Leerzeichen überhaupt nicht verwendet werden dürfen.Antworten:
Es sieht so aus, als könnten Sie mit der Umstellung auf die GNU-Implementierung von
date
(Version 5.90 oder höher) mehrere Formate ausführen--rfc3339=
.Beispiele
Wenn Sie möchten
T
, dass das als Hack hinzugefügt wird:Wenn Sie es in Millisekunden wollen:
Verweise
quelle
--iso-8601' option accepts the same arguments as
--rfc-3339` und schließt das 'T' in seine Ausgabe ein.s/\(\....\).*-/\1-/g
sollte seins/\(\....\).*\([+-]\)/\1\2/g
, auch östlich des Atlantiks zu arbeiten.NOTE: ISO 8601 defines date and time separated by "T".
Während RFC3339 es Ihnen ermöglicht, stattdessen ein Leerzeichen zu verwenden. Lesen Sie ietf.org/rfc/rfc3339.txt Abschnitt 5.6Mit GNU
date
(5.90 oder höher):Ersetzen
%N
durch%3N
für Millisekunden,%6N
für Mikrosekunden ...In AFAIK, keiner der POSIX-, Unix- oder LSB-Spezifikationen ist ein Befehl angegeben, der Zeiten mit einer Genauigkeit von weniger als einer Sekunde anzeigen kann, der Bruchteil ist jedoch in RFC 3339 optional.
POSIX / Unix / LSB-Laufzeit unterstützt
%z
die Anzeige des TZ-Offsets als-0800
, daher ist das wahrscheinlich portabelste, das Sie erhalten werden:quelle
GNU
date
hat das ISO-8601-Format eingebaut - ist das nicht ziemlich nah an RFC-3339?quelle
Wie wäre es mit guten alten:
quelle
0200
fehlt dem Zeitzonensegment ein Doppelpunkt. Dies kann dazu führen, dass einige Systeme beschädigt werden, die dies erfordern.time-numoffset
unter tools.ietf.org/html/rfc3339#section-5.6 .Sie können die Zeit auch einfacher gemäß RFC3339 (ISO8601) formatieren :
HINWEIS: Dieses Format wird auch in der Label Schema Convention RC 1.0 verwendet
quelle
-u
Flagge ist diese Antwort richtig, oder?Diese Befehle sind mit Ausnahme der
%z
Konvertierungsspezifikation POSIX-kompatibel . Es wird jedoch%z
weitgehend unterstützt und funktioniert auf die gleiche Weise unter Linux, MacOS, FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, Solaris, Minix und Haiku. Es funktioniert auch mit den Tools in Busybox, Toybox und sbase (den Systemdienstprogrammen von suckless.org). Da%z
der Zeitzonen-Offset im±HHMM
Format ausgegeben wird, muss diesed
Pipe einen Doppelpunkt hinzufügen und in ändern±HH:MM
.HINWEIS: Der
date
Befehl des Heirloom-Projekts weist eine inkompatible%z
Ausgabe auf: Es wird kein+
Zeichen gedruckt .quelle