2011-10-25 4 views
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)。私は間違って何をしていますか?

答えて

2

変更を有効にするには、ターミナルを再起動する必要があります。

+0

ドキュメントから、 '' ''で 'setlocale()'を呼び出すと、システムロケールが返されます。そうでない場合、どうすればこの関数を書くべきですか? – fredley

+0

NULLではありませんでしたか? –

+0

'デフォルトでは3つのロケールしか定義されていません:空の文字列" "(ネイティブ環境を表す)' – fredley

関連する問題