049.PyQt5_补充:日期、时间对象

  • 日期时间对象:QDateTime
  • 日期对象:QDate
  • 时间对象:QTime

QDateTime

  • 描述

    • 日期时间对象,是QDate和QTime类的组合,包括年月日 时分秒毫秒
  • 功能作用

  • 日期时间对象构造

    QDateTime()                         # 创建一个空的QDateTime对象
    QDateTime(QDateTime)                # 通过QDateTime对象创建一个QDateTime对象
    QDateTime(QDate)                    # 通过QDate对象创建一个QDateTime对象
    QDateTime(QDate,  QTime, Qt.TimeSpec = Qt.LocalTime)
    QDateTime(int, int, int, int, int, second: int = 0, msec: int = 0, timeSpec: int = 0)
    # 通过传入年、月、日、时、分创建QDateTime对象,秒、毫秒有默认值可传可不传
    
    QDateTime(QDate, QTime, Qt.TimeSpec, int)
    QDateTime(QDate, QTime, QTimeZone)
    
  • 静态方法

    QDateTime.currentDateTime()                   # 返回当前时间的QDateTime对象
    QDateTime.currentDateTimeUtc()                # 返回世界标准时间的QDateTime对象
    
  • 调整日期时间

    setDate(const QDate &date)      # 通过QDate对象,设置年月日
    setTime(const QTime &time)      # 通过QTime对象,设置时分秒
    
    addYears(int)                   # 增加指定年份,返回一个新的QDateTime对象
    addMonths(int)                  # 增加指定月份,返回一个新的QDateTime对象
    addDays(int)                    # 增加指定天数,返回一个新的QDateTime对象
    addSecs(int)                    # 增加指定秒数,返回一个新的QDateTime对象(时和分可以通过)
    addMSecs(int)                   # 增加指定毫秒数,返回一个新的QDateTime对象
    
  • 计算时间差

    offsetFromUtc()                 # 距离世界标准时间偏差多少秒
    secsTo(QDateTime)               # 计算两个日期时间对象之间相隔的秒
    msecsTo(QDateTime)              # 计算两个日期时间对象之间相隔的毫秒
    

QDate对象

  • 描述
    • 日期对象,包括年月日
  • 功能作用
  • 日期对象的构造
    QDate()
    QDate(int y, int m, int d)      # 通过传入年、月、日创建一个QDate对象
    
    # 静态方法
    currentDate()                   # 获取当前日期,返回QDate对象
    
  • 调整日期
    setDate(int year, int month, int day)       # 设置年、月、日
    
    addYears(int nyears)                        # 增加年份,返回新的QDate对象
    addMonths(int nmonths)                      # 增加月份,返回新的QDate对象
    addDays(qint64 ndays)                       # 增加天数,返回新的QDate对象
    
  • 计算时间差
    daysTo(const QDate &d)                      # 计算距离指定日期对象相隔天数
    
  • 获取时间
    day()                           # 获取日
    month()                         # 获取月
    year()                          # 获取年
    dayOfWeek()                     # 获取这一周 第几日(周日是第7天)
    dayOfYear()                     # 获取这一年 第几日
    daysInMonth()                   # 获取所在月总共多少天
    daysInYear()                    # 获取所在年总共多少天
    

QTime对象

  • 描述
    • 时间对象,包括时分秒毫秒
  • 功能作用
  • 时间对象构造
    QTime()                                             # 创建一个空QTime对象
    QTime(int h, int m, int s = 0, int ms = 0)          # 创建QTime对象的同时设置时分秒
    currentTime()                                       # 获取当前时间,返回一个QTime对象
    
  • 调整时间
    addSecs(int s)                                      # 增加指定秒数,返回新的QTime对象
    addMSecs(int ms)                                    # 增加指定毫秒数,返回新的QTime对象
    
  • 计算时间差
    secsTo(QTime t)                                     # 计算两个QTime对象间隔多少秒
    
  • 计时
    start()                                             # 计时开始
    restart()                                           # 重新计时开始,并返回自上次调用 start() 或 restart() 以来经过的毫秒数
    elapsed()                                           # 计时结束,返回自上次调用 start() 或 restart() 以来经过的毫秒数
    
  • 获取时间
    hour()                                              # 获取小时
    minute()                                            # 获取分钟
    second()                                            # 获取秒
    msec()                                              # 获取毫秒
    

  • 示例代码
  • 示例1:QDateTime对象
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QDateTime-创建使用')
            self.resize(500, 500)
            self.widget_list()
    
        def widget_list(self):
            self.add_widget()
    
    
        def add_widget(self):
            # dt = QDateTime()                          # 创建一个空QDateTime对象
            dt = QDateTime(2023, 3, 2, 20, 30, 50)      # 创建对象的同时设置年、月、日、时、分参数
            dt1 = QDateTime.currentDateTime()
    
            d = QDate(2022,12,12)
            t = QTime(13, 15)
            dt.setDate(d)
            dt.setTime(t)
    
            dt1 = dt1.addYears(-1)                  # QDateTime对象减一年
            dt1 = dt1.addDays(1)                    # QDateTime对象增加一天
    
            dte = QDateTimeEdit(dt, self)
            dte1 = QDateTimeEdit(dt1,self)
            dte1.move(0, 50)
    
            s = dt.secsTo(dt1)                      # 计算两个日期时间对象相隔多少秒
            h = dt.secsTo(dt1) / 3600                # 计算两个日期时间对象相隔多少小时
            print(s, h)
    
            pass
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        window.show()
        sys.exit(app.exec_())
    
  • 示例2:QDate对象示例
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QDate-创建使用')
            self.resize(500, 500)
            self.widget_list()
    
        def widget_list(self):
            self.add_widget()
    
    
        def add_widget(self):
            date = QDate()                  # 创建一个空的QDate对象
            date1 = QDate(2023,3,5)         # 创建QDate对象的同时设置年月日
            date2 = QDate.currentDate()     # 获取当前日期,返回一个QDate对象
    
            print(date)
            print(date1)
            print(date2)
    
            date.setDate(2023,2,28)         # 给QDate对象设置年月日
            date = date.addYears(2)         # QDate对象增加年份,返回新的QDate对象
            date = date.addMonths(1)        # QDate对象增加月份,返回新的QDate对象
            date = date.addDays(10)         # QDate对象增加天数,返回新的QDate对象
    
            dte = QDateTimeEdit(date,self)
            dte1 = QDateTimeEdit(date1,self)
            dte2 = QDateTimeEdit(date2,self)
    
            dte.move(50, 50)
            dte1.move(50, 100)
            dte2.move(50, 150)
    
            print('  day:', date2.day())            # 获取日
            print('month:', date2.month())          # 获取月
            print(' year:', date2.year())           # 获取年
            print(date2.dayOfWeek())                 # 获取这一周 第几日(周日是第7天)
            print(date1.dayOfWeek())
            print(date2.dayOfYear())                 # 获取这一年 第几日
            print(date2.daysInMonth())               # 获取所在月总共多少天
            print(date2.daysInYear())                # 获取所在年总共多少天
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        window.show()
        sys.exit(app.exec_())
    
  • 示例3:QTime对象示例
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QTime-创建使用')
            self.resize(500, 500)
            self.widget_list()
    
    
        def widget_list(self):
            self.add_widget()
    
    
        def add_widget(self):
            time0 = QTime()
            time1 = QTime(12, 12, 30)
            time2 = QTime.currentTime()
    
            time1 = time1.addSecs(360)
            # print(time1.secsTo(time2))
    
            dte = QDateTimeEdit(time0, self)
            dte1 = QDateTimeEdit(time1, self)
            dte2 = QDateTimeEdit(time2, self)
    
            dte.move(50, 50)
            dte1.move(50, 100)
            dte2.move(50, 150)
    
            time1.start()           # 开始计时
    
            btn = QPushButton('计时', self)
            btn.move(50, 200)
            btn.clicked.connect(lambda :print(time1.elapsed()))
    
            def btn_cao():
                # print(time1.elapsed())
                print(time1.restart())
    
            btn1 = QPushButton('重新计时', self)
            btn1.move(50, 250)
            btn1.clicked.connect(btn_cao)
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        window.show()
        sys.exit(app.exec_())

你可能感兴趣的:(PyQt5,qt5,pyqt,python,qt,开发语言)