преобразование QdateTime в обычный python dateTime? - PullRequest
14 голосов
/ 12 декабря 2011

У меня много существующего кода, который просто использует обычный класс dateTime в python, однако при обновлении моей программы я использую класс QtGui.QdateTimeEdit(), но этот класс возвращает объект QdateTime, который кажется несовместимым с обычным dateTime объектом.

Итак, есть ли вменяемый способ конвертировать QdateTime в обычный питон dateTime? Иначе как разбить его на части и воссоздать из этого обычный dateTime объект? Я использую PyQt4 с Python 3.2. Благодаря.

Ответы [ 3 ]

20 голосов
/ 12 декабря 2011

QDateTime имеет метод toPyDateTime, который будет возвращать обычные datetime объекты.

In : from PyQt4 import QtCore

In : QtCore.PYQT_VERSION_STR
Out: '4.8.6'

In : QtCore.QT_VERSION_STR
Out: '4.7.4'

In : now = QtCore.QDateTime.currentDateTime()

In : now
Out: PyQt4.QtCore.QDateTime(2011, 12, 11, 20, 12, 47, 55)

In : now.toPyDateTime()
Out: datetime.datetime(2011, 12, 11, 20, 12, 47, 55000)
12 голосов
/ 12 декабря 2011

PyQt - используйте .toPyDateTime() для объекта QtCore.QDateTime

>>> from PyQt4.QtCore import QDateTime
>>> qdate = QDateTime(2012, 12, 20, 11, 59, 59)
>>> qdate
PyQt4.QtCore.QDateTime(2012, 12, 20, 11, 59, 59)
>>> date = qdate.toPyDateTime()
>>> date
datetime.datetime(2012, 12, 20, 11, 59, 59)

PySide - используйте .toPython() для объекта QtCore.QDateTime

>>> from PySide.QtCore import QDateTime
>>> qdate = QDateTime(2012, 12, 20, 11, 59, 59)
>>> qdate
PySide.QtCore.QDateTime(2012, 12, 20, 11, 59, 59, 0, 0)
>>> date = qdate.toPython()
>>> date
datetime.datetime(2012, 12, 20, 11, 59, 59)
0 голосов
/ 15 сентября 2017
print(self.dte1.date().getDate())
print(self.dte1.date().toString("yyyy-MM-dd"))

вам нужен только метод toString() для строки Python

...