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'

我将 PyQt 4.7.1 用于 Python 2.6

EDIT2基于 jonrsharpe 的回答我已经逃脱了字符串转换:

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

结果是一样的。

EDIT3甚至更短的解决方案基于 falsetru 的评论:

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 回答