标签: qdatetime

将QdateTime转换为普通的python dateTime?

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

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

python datetime pyqt pyqt4 qdatetime

15
推荐指数
2
解决办法
1万
查看次数

如何强制QDateTime :: fromString读取UTC时间

我有一些输入包含根据iso8601格式化的UTC时间.我尝试使用QDateTime解析它:

  const char* s = "2009-11-05T03:54:00";
  d.setTimeSpec(Qt::UTC);
  d = QDateTime::fromString(s, Qt::ISODate);
  Qt::TimeSpec ts = d.timeSpec();
Run Code Online (Sandbox Code Playgroud)

当此片段结束时,ts设置为localTime并d包含3小时54分钟.有谁知道如何正确阅读日期?

c++ qt utc qdatetime

11
推荐指数
1
解决办法
7942
查看次数

Qt ISODate格式化日期/时间,包括时区

有没有人知道如何将时区包含在QDateTime的ISO字符串表示中?

我应该可以使用以下内容:

qDebug() << QDateTime::currentDateTime().toString(Qt::ISODate);
Run Code Online (Sandbox Code Playgroud)

但这总是以UTC格式出现:

2014-02-24T01:29:00Z
Run Code Online (Sandbox Code Playgroud)

目前,我正在解决这个问题的方法是通过显式设置偏移量来强制TimeSpec为Qt :: offsetFromUtc,这是我最初从QDateTime获得的.

QDateTime now = QDateTime::currentDateTime();
int offset = now.offsetFromUtc();
now.setOffsetFromUtc(offset);
qDebug() << now.toString(Qt::ISODate);
Run Code Online (Sandbox Code Playgroud)

这给出了最初的预期:

2014-02-24T01:29:00+02:00
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何以更清洁的方式做到这一点,还是必须将其记录为错误?

编辑:我正在使用Qt5.2.1

更新:

以下小程序显示了我的意思:

#include <QtCore/QDateTime>
#include <QtCore/QDebug>

int main(int argc, int argv){
    qDebug() << QDateTime::currentDateTime().toString(Qt::ISODate);
    qDebug() << QDateTime::currentDateTime().toTimeSpec(Qt::OffsetFromUTC).toString(Qt::ISODate);

    QDateTime now = QDateTime::currentDateTime();
    int offset = now.offsetFromUtc();
    now.setOffsetFromUtc(offset);
    qDebug() << now.toString(Qt::ISODate);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

生成以下输出:

"2014-02-24T10:20:49" 
"2014-02-24T08:20:49Z" 
"2014-02-24T10:20:49+02:00"
Run Code Online (Sandbox Code Playgroud)

最后一行是预期的那一行.请注意,第二次转换为UTC,这不是想要的.

c++ qt qdatetime qdate qtcore

9
推荐指数
2
解决办法
1万
查看次数

计算两个日期之间的天数

我尝试用Qt编写一个程序,计算两个日期之间的天数.问题是我是Qt的新手而且我没有工作.

我想这QDateTime很容易,但我不了解程序的结构.

有人可以为我做一个例子.这是一个简单的程序,可以显示到圣诞节前的天数.

qt qdatetime

6
推荐指数
2
解决办法
8181
查看次数

QDateTime到QString,Qt3中的毫秒数

在Qt3中是否有办法将QDateTime转换为QString并返回QDateTime,以便最终QDateTime将包含有关毫秒的信息?

谢谢.

qstring qt qt3 qdatetime

5
推荐指数
1
解决办法
7817
查看次数

如何使用QDateTime :: fromString?

我现在,这个问题听起来很愚蠢,但是我无法解决它。最糟糕的例子:

QString time_format = "yyyy-MM-dd  HH:mm:ss";
QDateTime a = QDateTime::currentDateTime();
QString as = a.toString(time_format);

qDebug() << as; // print "2014-07-16  17:47:04"

QDateTime b;
b.fromString(as,time_format);
assert(b.isValid()); // fails
Run Code Online (Sandbox Code Playgroud)

我创建一个有效的QDatetime,使用它创建一个字符串(正确),然后尝试再次将其转换为QDatetime(使用相同的time_format-string)。但是突然之间,字符串无法解析。

有任何想法吗?

qt qdatetime

5
推荐指数
1
解决办法
8672
查看次数

如何对QDateTime*的QList进行排序?

如何按QDateTime对象的值对QDateTime*对象的QList进行排序?

sorting qt qdatetime

4
推荐指数
1
解决办法
6256
查看次数

QDateTime :: fromString返回无效的日期,我缺少什么?

我有一些代码从sqlite数据库读取日期时间,datetime作为字符串返回.当我尝试使用QDateTime :: FromString将其转换为日期时,它返回一个无效的日期.以下是从数据库和转换返回的时间.为什么这不能解析?

// -this is the value returned from the DB currentServerTime=2012-01-17 19:20:27.0

QString format("yyyy/MM/dd hh:mm:ss");
QString qCurrentServerTime(currentServerTime);
now = QDateTime::fromString(qCurrentServerTime, format);
Run Code Online (Sandbox Code Playgroud)

c++ qt qdatetime

3
推荐指数
1
解决办法
8655
查看次数

在QDateTime中格式化小时的Qt4问题

我遇到以下代码的问题:

QDateTime test2;
test2.setTime_t(25);
qDebug() << test2.toString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

这打印"01:00:25"输出而不是00:00:25.为什么第一个小时设置为01而不是00?

我想也许是am/pm表示法,所以我尝试了这个

QDateTime test2;
test2.setTime_t(3600*22+25);
qDebug() << test2.toString("hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)

我仍然收到了输出

"23时00分25秒"

救命 :)

c++ qt qt4 qdatetime

2
推荐指数
1
解决办法
1765
查看次数

如何在Qt 5.1中找出我当前位置的UTC偏移量?

我必须编写一个函数来返回当前位置的UTC偏移量.令我最大的惊喜,下面的代码返回0:

const QDateTime now = QDateTime::currentDateTime();
return now.toUTC().secsTo(now) / 60;
Run Code Online (Sandbox Code Playgroud)

qt utc qdatetime timezone-offset

1
推荐指数
1
解决办法
1319
查看次数

如何在Qt中将秒(两倍)转换为QDateTime?

我有几秒钟以双精度格式存储(但是如果要考虑的话,它们是整数值)。我想将它们转换为hh:mm:ss format字符串。怎么做?例如double secs = 120;be 00:02:00

我将不胜感激。

c++ qt qdatetime

1
推荐指数
1
解决办法
3722
查看次数

QDateTime转换

我需要将String变量转换为QDateTime格式

我的代码看起来

QString date ="Thu Jun 18 2015";
QDateTime tmp = QDateTime::fromString(date,"ddd MMM dd yyyy HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

但结果是Thu Jan 1 00:00:00 1970.

后来我必须将这个日期转换为foramt yyyy-MM-dd HH:mm:ss,所以作为第一步我将字符串转换为QDateTime然后我必须转换为最终格式,上述代码有什么错误吗?

任何帮助将不胜感激.

谢谢哈里斯

qt qdatetime

0
推荐指数
1
解决办法
1793
查看次数

标签 统计

qdatetime ×12

qt ×11

c++ ×5

utc ×2

datetime ×1

pyqt ×1

pyqt4 ×1

python ×1

qdate ×1

qstring ×1

qt3 ×1

qt4 ×1

qtcore ×1

sorting ×1

timezone-offset ×1