GNU date
-d
está esperando que a data fornecida esteja em "formato independente de código de idioma", ou seja, POSIX
, que significa essencialmente o formato US em relação a xx/yy/zz
.
Estou tendo alguns problemas processando datas, onde eles estão sendo interpretados no formato americano (mm-dd) em vez do formato EU / AU (dd-mm). Parece que date
não respeita minhas configurações de localidade ou elas estão definidas incorretamente.
# This is correct, date read as US mm-dd-yy format
$ LC_TIME="en_US" date +%Y-%m-%d -d 1/2/03
2003-01-02
# This is incorrect, dates are read as US mm-dd-yy instead of AU dd-mm-yyyy
$ LC_TIME="en_AU" date +%Y-%m-%d -d 1/2/03
2003-01-02
As configurações de localidade parecem boas, pois date
pode produzir o formato correto:
$ LC_TIME="en_US" date +%x -d 2003-02-01
02/01/2003
$ LC_TIME="en_AU" date +%x -d 2003-02-01
01/02/03
Este é um bug em date
, ou você precisa fazer outra coisa para que ele respeite as configurações locais ao ler datas curtas?
GNU date
-d
está esperando que a data fornecida esteja em "formato independente de código de idioma", ou seja, POSIX
, que significa essencialmente o formato US em relação a xx/yy/zz
.