Преобразование QdateTime в обычный период времени python?
У меня есть много существующего кода, который просто использует обычный класс dateTime
в python, однако при обновлении моей программы я использую класс QtGui.QdateTimeEdit()
, но этот класс возвращает объект QdateTime
, который кажется несовместимым с обычным объектом dateTime
.
Итак, есть ли разумный способ конвертировать QdateTime
в обычный python dateTime
? Другие, затем разбивая его на части и воссоздавая из него нормальный объект dateTime
? Я использую PyQt4 с Python 3.2. Спасибо.
Ответы
Ответ 1
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)
Ответ 2
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)
Ответ 3
print(self.dte1.date().getDate())
print(self.dte1.date().toString("yyyy-MM-dd"))
вам нужен только метод toString()
для строки python