将QDateTime转换为普通Python datetime?

20 投票
3 回答
27922 浏览
提问于 2025-04-17 08:10

我有很多现成的代码,都是用普通的 dateTime 类写的。但是在升级我的程序时,我开始使用 QtGui.QdateTimeEdit() 这个类。这个类返回一个 QdateTime 对象,但它似乎和普通的 dateTime 对象不兼容。

那么,有没有简单的方法可以把 QdateTime 转换成普通的 Python dateTime 呢?除了把它拆分成各个部分,然后再重新创建一个普通的 dateTime 对象之外?我在用 PyQt4 和 Python 3.2。谢谢。

3 个回答

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

你只需要用到 toString() 方法来处理 Python 字符串。

21

PyQt - 在 QtCore.QDateTime 对象上使用 .toPyDateTime()

>>> 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 - 在 QtCore.QDateTime 对象上使用 .toPython()

>>> 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)
25

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)

撰写回答