O date
comando não oferece esse tipo de coisa, o que é meio triste, já que o RFC-3339 é o formato moderno, amplo e sensato usado em todos os lugares (exceto no e-mail que não é moderno nem sensato).
Meu deslocamento de fuso horário atualmente é -08: 00, portanto, a forma mais simples deste comando deve imprimir o horário atual como 2013-09-05T14:58:33.102-08:00
.
2013-09-05 14:58:33.102 -0800
exceto quando houver algum motivo pelo qual os espaços não devem ser utilizados.Respostas:
Parece que você pode fazer vários formatos usando a opção de implementação GNU
date
(versão 5.90 ou superior)--rfc3339=
,.Exemplos
Se você deseja que o
T
item seja adicionado, como um hack:Se você quiser em milissegundos:
Referências
fonte
--iso-8601' option accepts the same arguments as
--rfc-3339` e inclui o 'T' em sua saída.s/\(\....\).*-/\1-/g
deve sers/\(\....\).*\([+-]\)/\1\2/g
também trabalhar a leste do Atlântico.NOTE: ISO 8601 defines date and time separated by "T".
Enquanto o RFC3339 permite que você use um espaço. Leia ietf.org/rfc/rfc3339.txt Seção 5.6Com o GNU
date
(5.90 ou superior):Substitua
%N
com%3N
a milissegundos,%6N
para micro-segundos ...AFAIK, nenhuma das especificações POSIX, Unix ou LSB especifica qualquer comando que possa exibir horários com granularidade de segundo de segundo, mas a parte fracionária é opcional no RFC 3339.
O strixime POSIX / Unix / LSB suporta
%z
exibir o deslocamento TZ como-0800
, portanto, o mais portátil que você provavelmente obterá é:fonte
O GNU
date
possui o formato ISO-8601 embutido - não é tão parecido ou até idêntico ao RFC-3339?fonte
Que tal bons velhos:
fonte
0200
está faltando dois pontos, o que pode quebrar alguns sistemas que o exigem.time-numoffset
pelo tools.ietf.org/html/rfc3339#section-5.6 .Você também pode formatar a hora de acordo com a RFC3339 (ISO8601) com mais facilidade:
NOTA: Este formato também é usado no Label Schema Convention RC 1.0
fonte
-u
bandeira, esta resposta está correta, certo?Esses comandos são compatíveis com POSIX, com exceção da
%z
especificação de conversão. No entanto,%z
é amplamente suportado e funciona da mesma maneira no Linux, MacOS, FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, Solaris, Minix e Haiku. Também funciona com as ferramentas do Busybox, Toybox e sbase (os utilitários do sistema básico do suckless.org). Como%z
gera o deslocamento do fuso horário no±HHMM
formato, precisamos dosed
canal para adicionar dois pontos e alterá-lo para±HH:MM
.NOTA: O
date
comando do projeto Heirloom possui uma%z
saída incompatível : não imprime um+
sinal.fonte