【问题标题】:converting QdateTime to normal python dateTime?将 QdateTime 转换为正常的 python dateTime?
【发布时间】:2012-01-18 02:51:03
【问题描述】:

我有很多现有代码只使用python中的普通dateTime类,但是在升级我的程序时我使用QtGui.QdateTimeEdit()类,但该类返回一个似乎不兼容的QdateTime对象使用普通的 dateTime 对象。

那么,有没有一种理智的方法可以将QdateTime 转换为普通的python dateTime?其他然后将其分解为各个部分并从中重新创建一个普通的dateTime 对象?我将 PyQt4 与 Python 3.2 一起使用。谢谢。

【问题讨论】:

    标签: python datetime pyqt pyqt4 qdatetime


    【解决方案1】:

    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)
    

    【讨论】:

    • 谢谢,我想我在文档中错过了这一点,现在我觉得自己很愚蠢,但无论如何感谢您向我展示了这一点! ;-)
    【解决方案2】:

    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)
    

    【讨论】:

    • 很高兴看到这两种变体。
    【解决方案3】:
    print(self.dte1.date().getDate())
    print(self.dte1.date().toString("yyyy-MM-dd"))
    

    python 字符串只需要toString() 方法

    【讨论】:

      猜你喜欢
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-09
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      相关资源
      最近更新 更多