如何使用fromLocaleString函数将String转换为日期类型?

问题描述

我需要将在两个翻转开关上选择的时间转换为date QML类型。我希望通过功能date返回结果alarm_time()

我正在使用Date.fromLocaleString(locale,dateTimeString,format)函数进行转换。根据{{​​3}},不必指定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()

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...