我正在尝试将日期添加到QDate对象。月和日正确放置在Qdate对象中,但年份始终回读-4713。

这是我的代码:

int main(int argv, char *argc[])
{
   // Show all my arguments to make sure they are correct
   qDebug() << "\n";
   for( int i = 0; i < argv ; i++)
   {
      qDebug() << i << ":  " << argc[i] << "\n";
   }

   // Add the yyyy-mm-dd date into date
   QDate date = QDate::fromString(argc[1],"yyyy-mm-dd");

   // Check to see if the date is correct
   qDebug() << "Year: " << date.year() << "\nMonth:" << date.month() << "\nDay" << date.day();
   return 0;


}

这是我在终端中使用的:

./birthday "1992-01-01"


输出看起来像这样:

0 : ./birthdays
1 : 1990-01-01
Year: -4713
Month: 1
Day:   1


现在,无论我选择哪种年份,它始终会返回-4713。有人知道为什么吗?我已经在这个问题上停留了一段时间,并且不了解这里发生了什么。

最佳答案

也许从Qt版本到Qt版本会有所不同,但是对我来说,直到我输入字母m-大写字母"yyyy-MM-dd"之前,字符串都没有转换,然后它开始工作(我的版本是5.1.0)

您可能还会看到它here。提到的M是资本。

10-08 00:03