当前位置 博文首页 > JinlongCai的博客:QDateTime类

    JinlongCai的博客:QDateTime类

    作者:[db:作者] 时间:2021-07-26 14:52

    目录

    ?

    一、QDateTime

    二、成员函数文档

    三、使用案例


    一、QDateTime

    QDateTime对象包含一个日历日期和一个时钟时间(一个“日期时间”)。它是QDate和QTime两个类的组合。它可以从系统时钟中读取当前日期时间。它提供比较日期时间和操作日期时间的函数,比如加上一定数量的秒、天、月或年。
    
    QDateTime对象通常可以由明白地给定的日期和时间来创建,或者使用静态函数currentDateTime()让QDateTime对象包含系统时钟的日期时间。日期时间也可以由setDate()和setTime()来改变。
    日期时间也可以通过使用setTime()函数来得到一个POSIX标准的时间,它表示的是自从1970年1月1日00:00:00以来的秒数。
    
    fromString()函数通过一个给定的字符串和在字符串中日期时间格式的间隔说明就可以返回一个QDateTime。
    
    date()和time()函数提供了对日期和时间的访问。
    toString()提供了文本格式的相同信息。
    
    QDateTime提供了一整套的操作符来比较两个QDateTime对象,在这里小于表示早一些,大于表示晚一些。
    
    你可以使用addSecs()或addDays()给一个日期增加(或减少)一个给定的秒数或天数。相似地你可以使用addMonths()和addYears()。daysTo()函数返回两个日期时间之间的天数,sectTo()返回两个日期时间之间的秒数。
    
    日期时间对象的范围由QDate和QTime对象的范围约束。
    

    成员函数文档

    QDateTime::QDateTime ()
    构造一个零日期时间(比如,零日期和零时间)。一个零日期时间是无效的,因为零日期是无效的。
    QDateTime::QDateTime ( constQDate & date )
    构造一个日期为date和零时间(00:00:00.000)的日期时间。
    
    QDateTime::QDateTime ( constQDate & date, const QTime & time )
    构造一个日期为date和时间为time的日期时间。
    
    QDateTime QDateTime::addDays (int ndays ) const
    
    返回这个日期时间对象ndays天之后的一个日期时间对象(或者ndays天之前的,如果它是一个负数)。
    
    QDateTime QDateTime::addMonths( int nmonths ) const
    
    返回这个日期时间对象nmonths月之后的一个日期时间对象(或者nmonths月之前的,如果它是一个负数)。
    
    QDateTime QDateTime::addSecs (int nsecs ) const
    
    返回这个日期时间对象nsecs秒之后的一个日期时间对象(或者nsecs秒之前的,如果它是一个负数)。
    
    QDateTime QDateTime::addYears( int nyears ) const
    
    返回这个日期时间对象nyears年之后的一个日期时间对象(或者nyears年之前的,如果它是一个负数)。
    
    QDateTimeQDateTime::currentDateTime () [静态]
    
    返回当前日期时间,来自于系统时钟。
    
    QDate QDateTime::date () const
    
    返回日期时间的日期部分。
    
    int QDateTime::daysTo ( constQDateTime & dt ) const
    
    返回这个日期时间到dt的天数(如果dt早于这个日期时间,返回的为负数)。
    
    QDateTimeQDateTime::fromString (const QString & s, Qt::DateFormat f = Qt::TextDate )[静态]
    
    通过给定的字符串s,使用格式f,返回这个QDateTime,或者如果这是不可能的话返回一个无效的日期时间。
    
    注意Qt::LocalDate在这里不能使用。
    
    注意Qt::TextDate:它被推荐使用英语中的月的缩写格式(比如Jan)。本地的月名称也可以被使用,但这取决于用户的本地设置。
    
    bool QDateTime::isNull ()const
    
    如果日期和时间都是零,返回真,否则返回假。一个零日期时间是无效的。
    
    bool QDateTime::isValid ()const
    
    如果日期和时间都是有效的,返回真,否则返回假。
    
    bool QDateTime::operator!= (const QDateTime & dt ) const
    
    如果这个日期时间不等于dt,返回真,否则返回假。
    
    bool QDateTime::operator< (const QDateTime & dt ) const
    
    如果这个日期时间早于dt,返回真,否则返回假。
    
    bool QDateTime::operator<=( const QDateTime & dt ) const
    
    如果这个日期时间不晚于dt,返回真,否则返回假。
    
    bool QDateTime::operator== (const QDateTime & dt ) const
    
    如果这个日期时间等于dt,返回真,否则返回假。
    
    bool QDateTime::operator> (const QDateTime & dt ) const
    
    如果这个日期时间晚于dt,返回真,否则返回假。
    
    bool QDateTime::operator>=( const QDateTime & dt ) const
    
    如果这个日期时间不早于dt,返回真,否则返回假。
    
    int QDateTime::secsTo ( constQDateTime & dt ) const
    
    返回从这个日期到dt的秒数(如果dt早于这个日期,返回的为负数)。

    三、使用案例

    
    //时间差
    QString begin = "2021-04-09 11:26:40";    
    QDateTime begin_time = QDateTime::fromString(begin, "yyyy-MM-dd hh:mm:ss");             
    QString end = "2021-05-01 11:26:40";    
    QDateTime end_time = QDateTime::fromString(end, "yyyy-MM-dd hh:mm:ss");  
    
    //转化 秒,天
    begin_time.secsTo(end_time)
    begin_time.daysTo(end_time)
     
    
    QString str = "2021-04-09 11:26:40";
    QDateTime begin_time = QDateTime::fromString(str, "yyyy-MM-dd hh:mm:ss");
    QString str= begin_time .addDays(-1).toString("yyyy-MM-dd hh:mm:ss");
    
    
    
    //时间转化
    //将当前时间转化为时间戳 
    QDateTime begin_time = QDateTime::currentDateTime();//获取系统现在的时间
    uint stime = begin_time.toTime_t();

    ?

    cs