2011-12-12 35 views
12

Tôi có rất nhiều mã hiện có mà chỉ sử dụng lớp bình thường dateTime trong python, tuy nhiên trong nâng cấp chương trình của tôi tôi đang sử dụng lớp QtGui.QdateTimeEdit(), nhưng lớp đó trả về một đối tượng QdateTime dường như không tương thích với đối tượng bình thường dateTime.chuyển QdateTime thành date date python bình thường?

Vì vậy, có cách nào lành mạnh để chuyển đổi QdateTime thành python bình thường dateTime? Khác sau đó phá vỡ nó vào các bộ phận của nó và tái tạo một đối tượng bình thường dateTime từ đó? Tôi đang sử dụng PyQt4 với Python 3.2. Cảm ơn.

Trả lời

17

QDateTime có phương thức toPyDateTime sẽ trả lại đối tượng datetime thông thường.

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

cảm ơn, tôi đoán tôi đã bỏ lỡ điều đó trong Tài liệu, bây giờ tôi cảm thấy ngu ngốc nhưng cảm ơn dù sao cho tôi thấy điều đó! ;-) –

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

tốt để xem cả hai biến thể. –

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

bạn chỉ cần toString() phương pháp cho python chuỗi

01.
Các vấn đề liên quan