转换问题从一种QDateTime格式转换到另一种格式

时间:2011-09-16 05:21:02

标签: qt

我想转换格式的QDateTime

Sat Feb 12 00:00:00 2011

d/m/yyyy h:mm:ss AP

即“12/02/2011 12:0:0 AM”。

怎么可能呢?

2 个答案:

答案 0 :(得分:2)

可能使用这些功能

  • QDateTime :: fromString
  • QDateTime ::的toString

但是如果可以的话,尽量使用ISO based timeformat,如果它不是一个有效的日期,那么工作日和月日信息的这种奇怪的格式化会变得非常有趣。

正常示例可能看起来像(使用iso格式):

QDateTime myTime;
qDebug() << myTime.fromString("2010-01-01 17:00", "yyyy'-'MM'-'dd' 'hh':'mm").toString("yyyy-MM-dd hh:mm:ss");

我试图在fromString中使用你的输入格式,但结果有点奇怪。因此,在开始使用日期之前,您可能需要使用一些经典的字符串操作来创建带有一些正则表达式的有效日期字符串。

/祝你好运

答案 1 :(得分:0)

修复格式化字符串。您使用“mm”表示月份,但“mm”表示分钟,前导零。使用“MM”一个月。此外,如果你真的想在你的问题中提出没有前导零的分钟和秒,请只使用单个“m”和“s”:

QString str = tempDateTime.toString("dd/MM/yyyy h:m:s AP"));