2011-12-12 18 views
12

Tengo un montón de código existente que solo usa la clase normal dateTime en python, sin embargo, en la actualización de mi programa estoy usando la clase QtGui.QdateTimeEdit(), pero esa clase devuelve un objeto QdateTime que parece ser incompatible con el objeto normal dateTime.convirtiendo QdateTime a python dateTime normal?

Entonces, ¿hay una forma sensata de convertir QdateTime en python normal dateTime? ¿Otro que dividirlo en partes y recrear un objeto normal dateTime? Estoy usando PyQt4 con Python 3.2. Gracias.

Respuesta

17

QDateTime tiene un método toPyDateTime que devolverá objetos regulares 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) 
+0

gracias, supongo que me perdí eso en los documentos, ahora me siento estúpido, pero gracias de todos modos por mostrarme eso! ;-) –

10

PyQt - use .toPyDateTime() on QtCore.QDateTime object

>>> 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 - use .toPython() on QtCore.QDateTime object

>>> 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) 
+2

bueno ver ambas variantes. –

0
print(self.dte1.date().getDate()) 
print(self.dte1.date().toString("yyyy-MM-dd")) 

sólo necesita toString() método para cadena de Python

Cuestiones relacionadas