2011-12-12 11 views
12

Ho un sacco di codice esistente che utilizza solo la normale classe dateTime in python, tuttavia durante l'aggiornamento del mio programma sto usando la classe QtGui.QdateTimeEdit(), ma tale classe restituisce un oggetto QdateTime che sembra incompatibile con il normale oggetto dateTime.convertendo QdateTime in normale python dateTime?

Quindi, c'è un modo corretto per convertire QdateTime in python normale dateTime? Altro, quindi suddividendolo nelle sue parti e ricreando un normale oggetto dateTime da quello? Sto usando PyQt4 con Python 3.2. Grazie.

risposta

17

QDateTime ha un metodo toPyDateTime che restituirà gli oggetti regolari 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

grazie, immagino di averlo perso in Docs, ora mi sento stupido ma grazie comunque per avermelo mostrato! ;-) –

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

bello vedere entrambe le varianti. –

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

è necessario solo toString() metodo per stringa Python

Problemi correlati