QLocale 本地化(时间日期以及其它……)

QLocale 本地化时间日期

QLocale 本地化

    QLocale currentlocale = QLocale::system();
    qDebug()<<"default "<<currentlocale;

    //zh_CN
    //QLocale::setDefault(QLocale("zh_CN"));
    QLocale::setDefault(QLocale(QLocale::Chinese,QLocale::China));
    qDebug()<<"zh_CN "<<QLocale();
    qDebug() << QLocale().toString(QDate::currentDate());

    //en_US
    //QLocale::setDefault(QLocale("en_US"));
    QLocale::setDefault(QLocale(QLocale::C,QLocale::UnitedStates));
    qDebug() <<"en_US"<<QLocale();
    qDebug() << QLocale().toString(QDate::currentDate());

输出

default  QLocale(Chinese, Simplified Han, China)
zh_CN  QLocale(Chinese, Simplified Han, China)
"2019年6月13日星期四"
en_US QLocale(C, Default, Default)
"Thursday, 13 June 2019"

以不同的 locale 转化时间日期

     qDebug()<<"---------- locale string / dateTime ----------";
    //----------英文格式
    //en_US locale
    QLocale en_US_locale("en_US");

    //locale string to dateTime
    QDateTime en_US_dt =  en_US_locale.toDateTime("2019-06-14 03:22:08 pm","yyyy-MM-dd hh:mm:ss ap");

    //dateTime to locale string
    qDebug()<<"en_US_locale "<<en_US_locale.toString(en_US_dt,"yyyy-MM-dd hh:mm:ss ap");

	//----------中文格式
    //zh_CN locale
    QLocale zh_CN_locale("zh_CN");

    //locale string to dateTime
    QDateTime zh_CN_dt =  zh_CN_locale.toDateTime("2019-06-14 03:22:08 下午","yyyy-MM-dd hh:mm:ss ap");

    //dateTime to locale string
    qDebug()<<"zh_CN_locale "<<zh_CN_locale.toString(zh_CN_dt,"yyyy-MM-dd hh:mm:ss ap");

输出 :

---------- locale string / dateTime ----------
en_US_locale  "2019-06-14 03:22:08 pm"
zh_CN_locale  "2019-06-14 03:22:08 下午"

可以参考文章:

QT源码解析(九)解析QDateTime

你可能感兴趣的:(ubuntu,QT/QML)