2

から日付を取得しQDateTimeEdit、次のように秒に変換します。

import time
from datetime import datetime

date = self.__ui.dateTimeEdit.date().toString("dd/MM/yy")
dateString = str(date)

seconds = time.mktime(datetime.strptime(dateString, "%d/%m/%y").timetuple()) 

これはうまくいきますが、私には長すぎるように見えるので、私の質問は次のとおりですself.__ui.dateTimeEdit.date()。これらの文字列変換なしで、直接変換することは可能ですか?

EDIT1 残念ながらtoMSecsSinceEpoch()falsetruが示唆したように、私にはうまくいきません。

AttributeError: 'QDateTime' object has no attribute 'toMSecsSinceEpoch'

Python 2.6にPyQt 4.7.1を使用しています

jonrsharpeの回答に基づく EDIT2 文字列変換をエスケープしました:

    date = self.__ui.dateTimeEdit.date().toPyDate()
    seconds = time.mktime(date.timetuple()) 

結果は同じです。

falsetruのコメントに基づくEDIT3さらに短いソリューション

self.__ui.dateTimeEdit.dateTime().toTime_t()
4

2 に答える 2

2

使用QDateTime.toMSecsSinceEpoch:

>>> import PyQt4.QtCore
>>> d = PyQt4.QtCore.QDateTime(2014, 2, 20, 17, 10, 30)
>>> d.toMSecsSinceEpoch() / 1000
1392883830L

アップデート

代替使用QDateTime.toTime_t

>>> d = PyQt4.QtCore.QDateTime(2014, 2, 20, 17, 10, 30)
>>> d.toTime_t()
1392883830L
于 2014-02-20T08:14:05.007 に答える
1

あなたQDateが得る

self.__ui.dateTimeEdit.date()

toPyDate文字列の往復を節約する別の方法があります。

于 2014-02-20T08:14:39.520 に答える