Как я могу конвертировать персидские числа в числа Engli sh, используя QLocale? - PullRequest
0 голосов
/ 26 апреля 2020

Я хочу преобразовать персидские числа в числа Engli sh, используя QLocale, я написал этот код, но он не работает:

int main(void)
{
    QLocale english_number(QLocale::Language::English, QLocale::Country::UnitedStates);
    QTime time;

    time = english_number.toTime("۱۲:۳۲", "HH:mm");

    qDebug() << time;
}

Вывод на консоль:

QTime(Invalid)

Но возможно преобразовать числа Энгли sh в персидские числа:

QLocale persian_number(QLocale::Language::Persian, QLocale::Country::Iran);

time = persian_number.toTime("13:32", "HH:mm");

qDebug() << time;

Вывод на консоль:

QTime("13:32:00.000")

Где я go не так?

  • Qt: 5.14.1
  • ОС: Arch linux -5.6.7-arch1-1
  • Компилятор: G CC 9.3

1 Ответ

0 голосов
/ 26 апреля 2020

Я думаю, что это Qt Bug, для того, чтобы сделать это перед преобразованием в QTime, нам нужно преобразовать персидские числа в int, а затем преобразовать в QTime.

...