QDateTime::fromString 返回无效日期,我错过了什么?

发布于 2024-12-27 20:57:57 字数 371 浏览 2 评论 0原文

我有一些代码从 sqlite 数据库读取日期时间,日期时间作为字符串返回。当我尝试使用 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);

I have some code that reads a datetime from a sqlite database, the datetime is returned as a string. when I try to convert it to a date using QDateTime::FromString it returns an invalid date. Below is the time as returned from the database and conversion.
Why is this failing to parse?

// -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);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浪荡不羁 2025-01-03 20:57:57

不是 QT 专家,但如果 QDateTime::fromString() 按人们(合理)预期的方式工作,并且根据 这个,您没有使用正确的模式。

您指定从 sqllite 数据库读取的字符串类似于“2012-01-17 19:20:27.0”,那么您的格式应该类似于 yyyy-MM-dd HH:mm:ss.z 。

详细信息:

  • 您的分隔符应该是“-”而不是“/”(如示例中所示)
  • 时间似乎采用 24 小时格式(19 -> 7 pm)(因此使用 HH而不是 hh
  • 您只有一位数字表示毫秒,因此请添加 .z

No expert in QT, but if QDateTime::fromString() works as one would (reasonably) expect and according to this, you're not using the correct pattern.

You indicate the string read from the sqllite database is like "2012-01-17 19:20:27.0", then your format should be like yyyy-MM-dd HH:mm:ss.z.

In detail:

  • Your separator should by '-' not '/' (as you show in the example)
  • The time seems to be in 24 hours format (19 -> 7 p.m.) (so use HH instead of hh)
  • You have one digit for milliseconds, so add .z.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文