Russian Qt Forum

Qt => Общие вопросы => Тема начата: VPS от Апрель 21, 2014, 16:24



Название: Преобразовать строку в дату
Отправлено: VPS от Апрель 21, 2014, 16:24
Здравствуйте!
Есть строка, в которой дата пишется в виде "Имя_месяца Год", например: "Апрель 2014".
Пытаюсь её преобразовать в тип QDate при помощи метода:
Код:
QDate::fromString("Апрель 2014", "MMMM yyyy");
Если в Windows региональные настройки формата русские, то это проходит. Но если их изменить, например на English, то получаю не валидный QDate (и это правильно, т.к. метод ожидает английское название месяца).
Поэтому решил воспользоваться классом QLocale:
Код:
QLocale ruLocale("ru_RU");
QDate date { ruLocale.toDate("Апрель 2014", "MMMM yyyy") };
Но данный вариант не проходит, т.к. в названии месяца уже ожидается не "Апрель", а "Апреля".

Как справиться с данной проблемой?

П.С.: пока решение вижу в создании, например словаря (map), где ключом будет правильное название месяца, а значением - его номер. После этого разбирать строку на месяц и год. И создавать объект QDate в формате: "M yyyy". Может можно как-то легче это сделать?


Название: Re: Преобразовать строку в дату
Отправлено: Hrundel от Апрель 21, 2014, 17:16
Написать собственный универсальный парсер-свич.