Qt输出时间格式并嵌套翻译字段

使用QString的arg接口,实现对时间的AM/PM的翻译显示

示例

1
2
QDateTime curDateTime = QDateTime::currentDateTime();
curDateTime.toString("yyyy-MM-dd %1:mm:ss %2").arg(hour()).arg(ap());

hour与ap函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int hour()
{
int hour = QDateTime::currentDateTime().toString("hh").toInt();
if (getHourSystem())
return hour;
else
return hour > 12 ? (hour - 12) : hour;;
}

QString TimeModel::ap()
{
int hour = QDateTime::currentDateTime().toString("hh").toInt();
return hour > 12 ? QObject::tr("pm") : QObject::tr("am");
}