Я пытаюсь использовать strftime
на Mac для вывода времени в зависимости от локали.
Я устанавливаю локаль и получаю время:
// 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
). Что я делаю не так?