É um bug. O seletor "% j" (dia-do-ano) de /bin/date
está corrompido (pelo menos no OS X 10.10 e 10.11). Eu enviei um relatório de bug para a Apple (# 30975711).
Editar: parece estar corrigido no OS X 10.12 Sierra.
Eu tenho um script bash que pega uma string de data contendo o dia do ano (dia juliano) e a converte em outro formato. O caractere de formato %j
não está analisando a string como eu esperaria pelos documentos ( man date
e man strftime
). Por exemplo, quando faço isso:
date -j -f "%Y %j %H %M %S" "2013 2 12 34 56" "+%a %b %d %T %Z %Y"
Eu recebo:
Sat Mar 09 12:34:56 UTC 2013
Por que está mostrando o dia de hoje ( Sat March 09
)? Não deveria mostrar Wed Jan 02
(dia 2 de 2013)?
Parece funcionar bem com outros formatos. Por exemplo, isso:
date -j -f "%Y %m %d %H %M %S" "2013 01 02 12 34 56" "+%a %b %d %T %Z %Y"
dá corretamente Wed Jan 02 12:34:56 UTC 2013
.
O que está acontecendo? Estou usando o caractere %j
corretamente? Eu obtenho resultados idênticos no OS 10.10 Yosemite e 10.11 El Capitan.
Tags bash date macos terminal.app