Converter data de YYYJJJ no OS X?

4

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.

    
por jt bullitt 09.03.2017 / 23:49

1 resposta

0

É 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.

    
por 10.03.2017 / 19:31