如何使用 fromLocaleString() 函数将字符串转换为日期类型?

How to convert String to date type using fromLocaleString() function?

我需要将在两个随行杯上选择的时间转换为 date QML 类型。我希望通过函数 alarm_time().

返回结果 date

我正在使用 Date.fromLocaleString(locale, dateTimeString, format) 函数进行转换。根据 Qt Documentation,不必指定 locale 参数。

这里是简化代码:

Frame {

    function format_number(number) {
        return number < 10 && number >= 0 ? "0" + number : number.toString()
    }

    function alarm_time() {
        return Date.fromLocaleString(
            format_number(hours_tumbler.currentIndex) + ":" + format_number(minutes_tumbler.currentIndex), "hh:mm")
    }

    RowLayout {

        Tumbler {
            id: hours_tumbler
            model: 24
        }

        Tumbler {
            id: minutes_tumbler
            model: 60
        }

    }
}

现在,调用该函数时,出现以下错误:

Error: Locale: Date.fromLocaleString(): Invalid arguments

错误不言自明...

后来我尝试根据Qt Documentation中的说明指定locale参数。代码现在看起来像这样:

Frame {

    function format_number(number) {
        return number < 10 && number >= 0 ? "0" + number : number.toString()
    }

    property var locale: Qt.locale() // Here is something new...

    function alarm_time() {
        return Date.fromLocaleString(locale, // ...and here.
            format_number(hours_tumbler.currentIndex) + ":" + format_number(minutes_tumbler.currentIndex), "hh:mm")
    }

    RowLayout {

        Tumbler {
            id: hours_tumbler
            model: 24
        }

        Tumbler {
            id: minutes_tumbler
            model: 60
        }

    }
}

现在错误信息不同了:

Cannot override FINAL property

现在我卡住了,我真的想不出解决这个问题的方法。请帮忙!

您正在覆盖 Frame 的现有 locale 属性(它来自 Control)。简单地为它起一个不同的名字:

property var myLocale: Qt.locale()