使用区域设置更改日期格式

change date format using locale

本文关键字:日期 格式 设置 区域      更新时间:2024-05-29

我正在开发一个具有Dojo日期选择器的简单文本框。下面的代码使用区域设置en-gb (dd/mm/yyyy)正确解析日期。但是,从日期选择器中选取的日期仍然位于区域设置en-us (mm/dd/yyyy)中。因此,如果日期超过了本月12日,它就无法解析日期。

        require(["dojo/date/locale","dijit/form/Button", "dojo/dom", "dojo/domReady!"],function(locale,Button,dom){
            var myButton = new Button({
                label: "Submit Date",
                onClick: function(){
                    var date = locale.parse(dom.byId("date1").value,{
                        formatLength:'short',
                        selector:'date', 
                        locale:'en-gb'
                    });
                    alert(date);
                }
            }, "submit");
        });

我该如何解决这个问题?

我通过明确提及日期格式解决了这个问题。

onClick: function(){
    var date = locale.parse(dom.byId("date1").value,{
        formatLength:'short',
        selector:'date', 
        locale:'en-gb',
        datePattern:'dd/MM/yyyy'
    });
    alert(date.toLocaleString());
}

并且,还提到了内联模式。

constraints="{datePattern:'dd/MM/yyyy', strict:true}"