为什么OSX上的语言环境不会改变?

时间:2011-10-25 13:06:30

标签: c++ macos locale

我正在尝试在mac上使用strftime以依赖于语言环境的方式输出时间。

我正在设置区域设置并获得时间:

// 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_GB.UTF-8
13:58:01 25/10/2011

这是正确的。然而,我然后去语言& “文本系统首选项”面板,并将区域更改为美国。如果我再次运行我的程序,我得到相同的语言环境,时间格式相同(我希望语言环境为en_US,日期格式为10/25/2011)。我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要重新启动终端或启动程序的任何内容才能使更改生效。