2011-12-12 9 views
12

Mam dużo istniejącego kodu, który po prostu używa normalnej klasy dateTime w Pythonie, jednak przy aktualizacji mojego programu używam klasy QtGui.QdateTimeEdit(), ale ta klasa zwraca obiekt, który wydaje się być niezgodny z normalnym obiektem .konwertowanie QdateTime na normalny python dateTime?

Czy istnieje rozsądny sposób przekonwertowania QdateTime na normalny python dateTime? Innym sposobem jest rozbicie go na części i odtworzenie z niego normalnego obiektu dateTime? Używam PyQt4 z Pythonem 3.2. Dzięki.

Odpowiedz

17

ma metodę toPyDateTime, która zwróci zwykłe obiekty 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

dziękuję, chyba przegapiłem to w Dokumentach, teraz czuję się głupio, ale dzięki za to, że mi to pokazałeś! ;-) –

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

miło zobaczyć oba warianty. –

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

trzeba tylko toString() metody Pythona ciąg