マニュアルページによると、ユーティリティの書式指定子はロケール固有の日付書式を使用する必要があります%x
。date
ただし、同じインストール ロケールを指定して 2 つの異なるコンピュータで試してみると、各コンピュータに異なる形式が表示されます。
マシン「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
マシン「B」から:
$ locale -a | grep fr_FR
fr_FR.utf8
$ LC_ALL=fr_FR.UTF-8 date +%x
31/05/2012
私は見ましたhttp://demo.icu-project.org/icu-bin/locexp?d_=en&_=fr_FR、「短い日付」部分は機械「B」がここにあるように見えます。それとも私が何かを誤解しているのでしょうか?実際、ロケールは日付形式を絶対に指定せず、これらのバリエーションは実装全体にわたって発生しますか?
編集:うーん..受信者はいません...マシン「A」がOS X Lionで、マシン「B」がUbuntu 12.04と言えばもっと面白いでしょう。どちらも正しい国際化を持つと合理的に予想できます/興味深いですか?ローカライズ設定?
答え1
ロケールは実装によって異なります。ほとんどの最新のユニスはとをxx_YY
使用しますxx_YY.charset
が、ロケール名も保証されません。ロケール設定を除いてC
、他のコンピュータで同じ結果が得られるとは限りませんPOSIX
。
フランス人として、私はBが正しいとAが間違っていると言いたいと思います。フランスでは日付をドットで区切らない。 (他のフランス語圏の国でも使用できます。おそらくfr_CH
そうです。)