QDateTime:自动添加当前年份

时间:2016-12-16 15:54:35

标签: c++ qt user-interface datetime

我需要从QDateTime格式获取"hh:mm:ss"个对象。哪个年,月,日应该从当前日期开始?

除了将yyyy-mm-dd添加到输入字符串之外,是否有人会建议任何更清晰的解决方案。

1 个答案:

答案 0 :(得分:5)

您可以使用setTime()获取当前日期/时间,然后使用QDateTime::fromString()设置所需的时间:

QDateTime dateTime= QDateTime::currentDateTime();
dateTime.setTime(QTime::fromString("11:11:11", "hh:mm:ss"));

编辑:

为了在输入字符串的格式为QDateTime时获取"MM/dd hh:mm:ss"对象,将年份设置为当前年份,我会这样做:

QDateTime dateTime= QDateTime::fromString("12/17 11:11:11", "MM/dd hh:mm:ss");
//get current date
QDate currentDate= QDate::currentDate();
//get read date
QDate readDate= dateTime.date();
//assign new date by taking year from currentDate, month and days from readDate
dateTime.setDate(QDate(currentDate.year(), readDate.month(), readDate.day()));

请注意,当输入格式中没有字段时,{{3}}会使用一些默认值。在这种情况下,年份设置为1900,直到它被分配到最后一行中的当前年份。