将QDate转换为秒 [英] Convert QDate to seconds

查看:1119
本文介绍了将QDate转换为秒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从QDateTimeEdit获取日期并将其转换为秒,如下所示:

I take date from QDateTimeEdit and convert it to seconds like this:

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()而无需这些字符串转换?

This works well, but since it looks to long to me, my question is: Is it possible to convert self.__ui.dateTimeEdit.date() directly, without those string conversions?

EDIT1 不幸的是,如falsetru所建议的,toMSecsSinceEpoch()对我不起作用.

EDIT1 Unfortunately toMSecsSinceEpoch() as falsetru suggested, doesn't work for me.

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

我正在将PyQt 4.7.1用于Python 2.6

I'm using PyQt 4.7.1 for Python 2.6

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

EDIT2 based on jonrsharpe's answer I've escaped string conversions:

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

结果是相同的.

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

EDIT3 even shorter solution based on falsetru's comment:

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

推荐答案

使用 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

这篇关于将QDate转换为秒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆