1
私はロケール依存の方法で時間を出力するために、Macでstrftime
を使用しようとしています。OSXでロケールが変更されないのはなぜですか?
私は、ロケールを設定し、時刻を取得しています:正しい
en_GB.UTF-8
13:58:01 25/10/2011
を出力
// sets the program's locale to the native locale
// without this line the locale is 'C'
log.debug(setlocale(LC_ALL,""));
struct tm* date = localtime(&time);
strftime(result.buf, size, "%X %x", date);
log.debug(result.buf);
。ただし、言語&テキストシステム環境設定パネルに移動し、地域を米国に変更します。プログラムをもう一度実行すると、同じロケールが取得され、同じ時刻にフォーマットされます(ロケールはen_US
、日付は10/25/2011
)。私は間違って何をしていますか?
ドキュメントから、 '' ''で 'setlocale()'を呼び出すと、システムロケールが返されます。そうでない場合、どうすればこの関数を書くべきですか? – fredley
NULLではありませんでしたか? –
'デフォルトでは3つのロケールしか定義されていません:空の文字列" "(ネイティブ環境を表す)' – fredley