2011-12-12 202 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字符串

方法