1. 코드

from PyQt5.QtWidgets import QWidget, QApplication, QVBoxLayout, \\
                            QLabel, QTimeEdit, QDateEdit, QDateTimeEdit
from PyQt5.QtCore import Qt, QTime, QDate, QDateTime
import sys

class 시간날짜편집기(QWidget):

    def __init__(self):
        super().__init__()
        self.UI초기화()

    def UI초기화(self):
        label = QLabel('QTimeEdit')
        label.setAlignment(Qt.AlignCenter)

        time = QTimeEdit(self)
        time.setTime(QTime.currentTime())
        time.setTimeRange(QTime(00, 00, 00), QTime.currentTime())
        time.setDisplayFormat('a:hh:mm:ss.zzz')

        label2 = QLabel('QDateEdit')
        label2.setAlignment(Qt.AlignCenter)

        date_edit = QDateEdit(self)
        date_edit.setDate(QDate.currentDate()) 
        date_edit.setDateRange(QDate(2000, 1, 1), QDate.currentDate())
        date_edit.dateChanged.connect(self.dateChange)

        label3 = QLabel('이곳에 QDateEdit에서 선택된 값이 나타납니다.')
        label3.setAlignment(Qt.AlignCenter)

        label4 = QLabel('QDateTimeEdit')
        label4.setAlignment(Qt.AlignCenter)

        label5 = QLabel(self)
        label5.setAlignment(Qt.AlignCenter)
        label5.setText(f'QDateTime \\n 현재 시간은 {QDateTime.currentDateTime().toString("yyyy년 MMMM d월 ap hh시 mm분 ss초.zzz")} 입니다.')

        dt_edit = QDateTimeEdit(self)

        dt_edit.setDateTimeRange(QDateTime(2020, 1, 1, 00, 00, 00),\\
                                 QDateTime(2021, 1, 1, 00, 00, 00))
        dt_edit.setDisplayFormat('yyyy.MM.dd hh:mm:ss')

        vbox = QVBoxLayout()

        vbox.addWidget(label)
        vbox.addWidget(time)
        vbox.addWidget(label2)
        vbox.addWidget(date_edit)
        vbox.addWidget(label3)
        vbox.addWidget(label5)
        vbox.addWidget(dt_edit)

        self.setLayout(vbox)

        self.setWindowTitle('Q Time,Date Edit')
        self.setGeometry(300, 300, 400, 300)
        self.show()

    def dateChange(self):
        self.label3.setText(self.date_edit.date().toString('yyyy년 MMMM d일'))

프로그램무한반복 = QApplication(sys.argv)
실행인스턴스 = 시간날짜편집기()
프로그램무한반복.exec_()

2. 상세 내용

QTime, QDate, QDateTime 라이브러리는 같이 활용되는 함수(현재시간,날짜 구하기 등)입니다.

2.1 QTimeEdit

time = QTimeEdit(self)
time.setTime(QTime.currentTime())
time.setTimeRange(QTime(00, 00, 00), QTime.currentTime())
time.setDisplayFormat('a:hh:mm:ss.zzz')

예시)

출처: https://doc.qt.io/qt-5/qdatetime.html

출처: https://doc.qt.io/qt-5/qdatetime.html

단, QDate나 QTime과 같은 단일 날짜, 시간 만 보여줄 경우 그 형식에 맞춰 표현식을 써야함

2.2 QDateEdit

label2 = QLabel('QDateEdit')
label2.setAlignment(Qt.AlignCenter)

self.date_edit = QDateEdit(self)
self.date_edit.setDate(QDate.currentDate())
self.date_edit.setDateRange(QDate(2000, 1, 1), QDate.currentDate())
self.date_edit.dateChanged.connect(self.dateChange)

self.label3 = QLabel("이곳에 QDateEdit에서 선택된 값이 나타납니다.")
self.label3.setAlignment(Qt.AlignCenter)
def dateChange(self):
    self.label3.setText(self.date_edit.date().toString('yyyy년 MMMM d일'))