SAPUI5本地化日期验证

时间:2018-01-25 22:35:42

标签: javascript validation date sapui5

有人知道SAPUI5使用哪种日期格式来使用sap.m.DatePicker验证本地化日期吗?

实施例: 当使用带有displayFormat" MMMM d,y"的sap.m.DatePicker时在en-US,我输入" 12/31/18"它会转换为" 2018年12月31日",但是当我输入" 12/31/2018"它似乎不是一个有效的输入。

1 个答案:

答案 0 :(得分:0)

我明白了! 如果没有为sap.m.DatePicker提供valueFormat,则输入验证基于displayFormat和一些特定于给定语言环境的后备格式。在en_US中,后备格式为:

MMDDYYYY
MMDDYY
M / d / yy的
MMM d,y
YYYY-MM-DD
YYYYMMDD
MMDDYYYY
MMDDYY

" 12 /2018分之31"不匹配任何这些格式,因此不被视为有效。 我创建了这个工具,因此您可以检查特定于语言环境的格式并测试一些标准或自定义显示格式: http://jsbin.com/xalinujafi/edit?output

获取DatePicker看起来像这样:

var oDateFormat = sap.ui.core.format.DateFormat.getDateInstance({style: 'long'});
var oDate = new sap.m.DatePicker({
    width: '19.25rem',
    displayFormat: oDateFormat.oFormatOptions.pattern,
    change: function(oEvent){
        var oSource = oEvent.getSource();
        var oFormat = oSource._oDisplayFormat;
        if (!oFormat.parse(oSource.getValue())) {
            oSource.setValueState("Error");
            oSource.setValueStateText("Invalid Input");
        } else {
            oSource.setValueState("None");
            oSource.setValueStateText("");
        }
    }
});