Qt Qml toLocaleString函数返回错误的值



我用下面的JavaScript代码将当前日期格式化为字符串:

const date = new Date();
const options = { weekday: 'short', hour: 'numeric', minute: 'numeric' };
return date.toLocaleString('en-GB', options);

这应该返回Wed 12:39-当它在web浏览器中执行时也是如此。

然而,在Qt的JavaScript引擎中,这返回一个不同于预期的值,4/5/23 12:39 PM,其中包括日期而不是工作日,并且使用12小时而不是24小时时间。

我如何使Qt格式的日期正确?

虽然Qt/JS的所有领域都与行业JavaScript保持一致,但差距正在缩小。因为你是在Qt中,你有利用的优势,可能,更丰富的Qt.formatDateTime方法,例如

import QtQuick
import QtQuick.Controls
Page {
Label {
anchors.centerIn: parent
background: Rectangle {
anchors.fill: parent
anchors.margins: -10
radius: 10
color: "lightsteelblue"
z: -2
}
text: fn()
}
function fn() {
const date = new Date();
return Qt.formatDateTime(date, "ddd hh:mm AP"); // e.g. Thu 07:08 AM
}
}

"hh"可以是24小时或12小时显示。由于"AP"的存在,它强制12小时显示以及附加的AM/PM。

你可以在网上试试!

引用:

  • https://doc.qt.io/qt-6/qml-qtqml-qt.html formatDateTime-method

相关内容

  • 没有找到相关文章

最新更新