La date
commande n'offre pas une telle chose, ce qui est un peu triste puisque la RFC-3339 est le format moderne, répandu et sain utilisé partout (sauf dans le courrier électronique qui n'est ni moderne ni sain).
Mon décalage de fuseau horaire est actuellement de -08: 00, donc la forme la plus simple de cette commande devrait afficher l'heure actuelle sous la forme 2013-09-05T14:58:33.102-08:00
.
2013-09-05 14:58:33.102 -0800
sauf lorsqu'il existe une raison pour laquelle les espaces ne doivent pas être utilisés du tout.Réponses:
Il semble que vous pouvez faire plusieurs formats à l' aide de l'interrupteur à la mise en œuvre GNU
date
(version 5.90 ou plus),--rfc3339=
.Exemples
Si vous souhaitez l'
T
ajouter, en tant que hack:Si vous le souhaitez en millisecondes:
Les références
la source
--iso-8601' option accepts the same arguments as
--rfc-3339`, et inclut le «T» dans sa sortie.s/\(\....\).*-/\1-/g
devrait êtres/\(\....\).*\([+-]\)/\1\2/g
de travailler également à l'est de l'Atlantique.NOTE: ISO 8601 defines date and time separated by "T".
Alors que le RFC3339 vous permet d'utiliser un espace à la place. Lire ietf.org/rfc/rfc3339.txt Section 5.6Avec GNU
date
(5,90 ou supérieur):Remplacez
%N
par%3N
pour les millisecondes,%6N
pour les micro-secondes ...AFAIK, aucune des spécifications POSIX, Unix ou LSB ne spécifie de commande pouvant afficher les temps avec une granularité inférieure à la seconde, mais la partie fractionnaire est facultative dans la RFC 3339.
Le strftime POSIX / Unix / LSB prend
%z
en charge l' affichage du décalage TZ-0800
, donc le plus portable que vous obtiendrez probablement est:la source
GNU
date
a le format ISO-8601 intégré - n'est-ce pas assez proche ou même identique à RFC-3339?la source
Et le bon vieux:
la source
0200
manque un deux-points, ce qui peut casser certains systèmes qui en ont besoin.time-numoffset
at tools.ietf.org/html/rfc3339#section-5.6 .Vous pouvez également formater l'heure selon RFC3339 (ISO8601) plus facilement:
REMARQUE: ce format est également utilisé dans la Convention de schéma d'étiquette RC 1.0
la source
-u
drapeau, cette réponse est correcte, non?Ces commandes sont compatibles POSIX, à l'exception de la
%z
spécification de conversion. Cependant,%z
est largement pris en charge et fonctionne de la même manière sous Linux, MacOS, FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, Solaris, Minix et Haiku. Il fonctionne également avec les outils de Busybox, Toybox et sbase (les utilitaires du système de base suckless.org). Étant donné que%z
le décalage du fuseau horaire est généré au±HHMM
format, nous avons besoin dused
canal pour ajouter deux points et le changer en±HH:MM
.REMARQUE: la
date
commande du projet Heirloom a une%z
sortie incompatible : elle n'imprime pas de+
signe.la source