我如何使用 QLocale 将波斯语数字转换为英语数字?
How i could convert Persian numbers to English numbers using QLocale?
我想使用 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)
但是可以将英文数字转换为波斯数字:
QLocale persian_number(QLocale::Language::Persian, QLocale::Country::Iran);
time = persian_number.toTime("13:32", "HH:mm");
qDebug() << time;
控制台输出:
QTime("13:32:00.000")
我哪里错了?
- Qt:5.14.1
- OS: Archlinux-5.6.7-arch1-1
- 编译器: GCC 9.3
我认为这是一个 Qt 错误,为了在转换为 QTime
之前执行此操作,我们需要将波斯数字转换为 int
,然后再转换为 QTime
。
我想使用 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)
但是可以将英文数字转换为波斯数字:
QLocale persian_number(QLocale::Language::Persian, QLocale::Country::Iran);
time = persian_number.toTime("13:32", "HH:mm");
qDebug() << time;
控制台输出:
QTime("13:32:00.000")
我哪里错了?
- Qt:5.14.1
- OS: Archlinux-5.6.7-arch1-1
- 编译器: GCC 9.3
我认为这是一个 Qt 错误,为了在转换为 QTime
之前执行此操作,我们需要将波斯数字转换为 int
,然后再转换为 QTime
。