8

如何在 Qt 中将公历日期转换为波斯日期?

4

2 回答 2

8

QDateConvertor类可以帮助您将日期形式 geogorian 转换为 jalali 和 jalali 到 geogorian。

编辑: 将此类添加到您的项目中,并在需要转换日期的地方包含“qdateconvertor.h”。

   // gregorian to jalali 
   QDateConvertor mdate;
   QStringList shamsi=  mdate.ToJalali( "2001","9","11");
   QString JalailDate =shamsi.at(0)+"/"+shamsi.at(1)+"/"+shamsi.at(2)+ ":" +shamsi.at(3);
   qDebug()<<JalailDate;    
   // jalali to gregorian
   QStringList m= mdate.ToMiladi("1372","3","6");
   QString miladiDate= m.at(0)+"/"+ m.at(1)+"/"+m.at(2);
   qDebug()<<miladiDate;    
于 2013-04-14T22:31:57.810 回答
4

对于 QT >= 5.14,您可以这样做:

QCalendar calendar(QCalendar::System::Jalali);

QDate today = QDate::currentDate();

QCalendar::YearMonthDay ymd = calendar.partsFromDate(today);

qDebug() << ymd.year;
qDebug() << ymd.month;
qDebug() << ymd.day;

qDebug() << QString("%1/%2/%3")
            .arg(ymd.year, 4, 10, QChar('0'))
            .arg(ymd.month, 2, 10, QChar('0'))
            .arg(ymd.day, 2, 10, QChar('0'));
于 2020-05-05T01:29:26.837 回答