2011-12-12 201 views
12

我有很多現有代碼只是使用python中的普通dateTime類,但是在升級我的程序時,我使用的是QtGui.QdateTimeEdit()類,但該類返回的QdateTime對象似乎與正常的dateTime對象不兼容。將QdateTime轉換爲普通的python dateTime?

那麼,有沒有一種理智的方式將QdateTime轉換成普通python dateTime?其他然後將其分解成它的部分,並從中重新創建一個正常的對象dateTime?我在Python 3.2中使用PyQt4。謝謝。

回答

17

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

謝謝,我想我錯過了在Docs中,現在我感到很蠢,但是非常感謝你給我看! ;-) –

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

很高興看到這兩個變種。 –

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

你只需要Python字符串

方法