LINUX.ORG.RU

Как получить параметры локали связанные с форматом дат, с Qt или без?

 , ,


0

1

Как получить символы разделителей даты, длинны чисел, порядок следования и т.п. для числовой формы даты текущей или какой либо локали? Эту информацию желательно получить через Qt, но если он не предоставляет такой функционал то уж как-то по другому.

★★★

Qt мой любимый язык после Rust, но к сожалению это тот самый недостаток: можно узнать только через небезопасный прямой доступ в память(можно выйти за границы или что-то не то удалить), так что лучше придумать другой воркэраунд для таски

rust_afari
()
Ответ на: комментарий от RazrFalcon

Как же так-то? Если есть в локали некая информация, значит должен быть способ её получить, а иначе для чего же она там тогда. Или может быть я путаю и такая информация не имеет отношения к локали и локаль о таком не знает?

normann ★★★
() автор топика
Ответ на: комментарий от xaizek

Так и не смог создать объект для системной локали. Конструктор без параметров создаёт «C», а имя локали возвращаемое setlocale() (<clocale>), ему не подходит.

normann ★★★
() автор топика
Ответ на: комментарий от xaizek

std::locale("") должна быть системной (вроде, и без (void)setlocale(LC_ALL, "");).

Неа, что с setlocale(), что без неё, на «» выдаёт локаль C.

normann ★★★
() автор топика
Ответ на: комментарий от normann

А locale в терминале не C локаль показывает?

Просто должно работать и у меня так себя ведёт. Может ему std::setlocale нужно, но не уверен, что будет разница.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Да дело в том что всё это я на оффтопике проверял, мне нужно кроссплатформенное решение, если на нём не сработает, значит нет смысла и под линукс использовать.

normann ★★★
() автор топика
Ответ на: комментарий от normann

Ну как дополнение к фасетам в C++ пригодиться может, я уже забыл, что тут именно про даты вопрос. Даты в nl_getinfo() на *nix вроде есть, а на оффтопике GetLocaleInfoEx(). Видимо, универсального способа доступа нету.

xaizek ★★★★★
()
Ответ на: комментарий от normann

Ошибся и неправильно написал:

#include <langinfo.h>

char *nl_langinfo(nl_item item);

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.