Se 'LC_ALL = fr_FR.UTF-8 date +% x' fornecer resultados consistentes nas máquinas?

2

O especificador de formato %x para o utilitário date deve, de acordo com a página man, usar o formato de data específico da localidade. No entanto, quando eu especificar o mesmo local instalado e tentar isso em duas máquinas diferentes, eu obtenho diferentes formatos em cada:

Na máquina 'A':

$ locale -a | grep fr_FR
fr_FR
fr_FR.ISO8859-1
fr_FR.ISO8859-15
fr_FR.UTF-8
$ LC_ALL=fr_FR.UTF-8 date +%x
31.05.2012

Na máquina 'B':

$ locale -a | grep fr_FR
fr_FR.utf8
$ LC_ALL=fr_FR.UTF-8 date +%x
31/05/2012

Eu dei uma olhada no link e na seção de 'data abreviada' faz parecer que a máquina 'B' está bem aqui. Ou eu entendi mal alguma coisa e, de fato, as configurações de localidade não especificam absolutamente o formato de data e esse tipo de variação é esperado em implementações?

Edit: Hmm .. sem compradores ... Seria mais interessante se eu dissesse que a máquina 'A' é o OS X Lion e a máquina 'B' é o Ubuntu 12.04, ambos os quais parece razoável esperar ter configurações corretas de internacionalização / localização?

    
por acm 31.05.2012 / 18:25

1 resposta

2

As configurações de localidade são dependentes da implementação. Mesmo os nomes de localidade não são garantidos, embora a maioria dos unices modernos use xx_YY e xx_YY.charset . Você não pode ter certeza de esperar os mesmos resultados em máquinas diferentes, exceto nas C e POSIX locales.

Como francês, direi que B está certo e A está errado. Pontos não são usados para separar datas na França. (Eles podem ser usados em outros países de língua francesa; talvez fr_CH deva ter pontos.)

    
por 04.06.2012 / 02:01