我正在尝试在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
)。我做错了什么?
答案 0 :(得分:2)
您需要重新启动终端或启动程序的任何内容才能使更改生效。