날짜와 시간 표시하기


QtCore 모듈의 QDate, QTime, QDateTime 클래스를 이용해서 어플리케이션에 날짜와 시간을 표시할 수 있습니다.

각 클래스에 대한 자세한 설명은 아래 링크를 참고하세요.


날짜 표시하기

QDate 클래스는 날짜와 관련된 기능들을 제공합니다.


현재 날짜 출력하기

우선 QDate 클래스를 이용해서 날짜를 출력해 보겠습니다.

from PyQt5.QtCore import QDate

now = QDate.currentDate()
print(now.toString())

currentDate() 메서드는 현재 날짜를 반환합니다.

toString() 메서드를 통해 현재 날짜를 문자열로 출력할 수 있습니다.

결과는 아래와 같습니다.

 1 2 2019

날짜 형식 설정하기

toString() 메서드의 format 파라미터를 설정함으로써 날짜의 형식을 정할 수 있습니다.

from PyQt5.QtCore import QDate, Qt

now = QDate.currentDate()
print(now.toString('d.M.yy'))
print(now.toString('dd.MM.yyyy'))
print(now.toString('ddd.MMMM.yyyy'))
print(now.toString(Qt.ISODate))
print(now.toString(Qt.DefaultLocaleLongDate))

‘d’는 일(day), ‘M’은 달(month), ‘y’는 연도(year)를 나타냅니다. 각 문자의 개수에 따라 날짜의 형식이 다르게 출력됩니다.

Qt.ISODate, Qt.DefaultLocaleLongDate를 입력함으로써 ISO 표준 형식 또는 어플리케이션의 기본 설정에 맞게 출력할 수 있습니다.

결과는 아래와 같습니다.

2.1.19
02.01.2019
.1.2019
2019-01-02
2019 1 2 수요일

자세한 내용은 아래의 표 또는 공식 문서를 참고합니다.

../_images/2_9_date_format.PNG ../_images/2_9_date_format_2.PNG


시간 표시하기

QTime 클래스를 사용해서 현재 시간을 출력할 수 있습니다.


현재 시간 출력하기

from PyQt5.QtCore import QTime

time = QTime.currentTime()
print(time.toString())

currentTime() 메서드는 현재 시간을 반환합니다.

toString() 메서드는 현재 시간을 문자열로 반환합니다.

결과는 아래와 같습니다.

15:41:22

시간 형식 설정하기

from PyQt5.QtCore import QTime, Qt

time = QTime.currentTime()
print(time.toString('h.m.s'))
print(time.toString('hh.mm.ss'))
print(time.toString('hh.mm.ss.zzz'))
print(time.toString(Qt.DefaultLocaleLongDate))
print(time.toString(Qt.DefaultLocaleShortDate))

‘h’는 시간(hour), ‘m’은 분(minute), ‘s’는 초(second), 그리고 ‘z’는 1000분의 1초를 나타냅니다.

또한 날짜에서와 마찬가지로 Qt.DefaultLocaleLongDate 또는 Qt.DefaultLocaleShortDate 등으로 시간의 형식을 설정할 수 있습니다.

결과는 아래와 같습니다.

16.2.3
16.02.03
16.02.03.610
오후 4:02:03
오후 4:02

자세한 내용은 아래의 표 또는 공식 문서를 참고합니다.

../_images/2_9_time_format.PNG


날짜와 시간 표시하기

QDateTime 클래스를 사용해서 현재 날짜와 시간을 함께 출력할 수 있습니다.


현재 날짜와 시간 출력하기

from PyQt5.QtCore import QDateTime

datetime = QDateTime.currentDateTime()
print(datetime.toString())

currentDateTime() 메서드는 현재의 날짜와 시간을 반환합니다.

toString() 메서드는 날짜와 시간을 문자열 형태로 반환합니다.


날짜와 시간 형식 설정하기

from PyQt5.QtCore import QDateTime, Qt

datetime = QDateTime.currentDateTime()
print(datetime.toString('d.M.yy hh:mm:ss'))
print(datetime.toString('dd.MM.yyyy, hh:mm:ss'))
print(datetime.toString(Qt.DefaultLocaleLongDate))
print(datetime.toString(Qt.DefaultLocaleShortDate))

위의 예제에서와 마찬가지로 날짜에 대해 ‘d’, ‘M’, ‘y’, 시간에 대해 ‘h’, ‘m’, ‘s’ 등을 사용해서 날짜와 시간이 표시되는 형식을 설정할 수 있습니다.

또한 Qt.DefaultLocaleLongDate 또는 Qt.DefaultLocaleShortDate를 입력할 수 있습니다.


상태표시줄에 날짜 표시하기

상태표시줄에 오늘의 날짜를 출력해 보겠습니다.

## Ex 3-9. 날짜와 시간 표시하기.

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QDate, Qt


class MyApp(QMainWindow):

    def __init__(self):
        super().__init__()
        self.date = QDate.currentDate()
        self.initUI()

    def initUI(self):
        self.statusBar().showMessage(self.date.toString(Qt.DefaultLocaleLongDate))

        self.setWindowTitle('Date')
        self.setGeometry(300, 300, 400, 200)
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

currentDate() 메서드를 통해 현재 날짜를 얻고, showMessage() 메서드로 상태표시줄에 현재 날짜를 표시했습니다.



결과

../_images/2_9_showing_date.png

그림 3-9. 상태표시줄에 날짜 표시하기.


이전글/다음글