是否有任何选项可以在sap.m.Datepicker中更改区域设置?

时间:2017-08-21 10:06:36

标签: javascript sapui5

sap.ui.commons.DatePicker有一个属性" locale"设置datepicker的语言。但我没有在" sap.m.DatePicker"中找到任何属性。改变语言环境。有什么办法可以做到吗?

1 个答案:

答案 0 :(得分:0)

DatePicker中没有区域设置的直接属性。但是,有一个有点笨拙的技巧可以解决这个问题,不幸的是它使用私有属性“ _oDisplayFormat ”,它存储 sap.ui.core的实例。 format.DateFormat 即可。下面的代码片段如下:

<!DOCTYPE html>
<html>
	<head>
		<meta name="description" content="UI5 DatePicker with non-default locale"/>
	<meta http-equiv='X-UA-Compatible' content='IE=edge' />
	<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
	
      
      <title>UI5 DatePicker Example with different Locales</title>
	
	<script id='sap-ui-bootstrap' type='text/javascript'
		src='https://openui5.hana.ondemand.com/resources/sap-ui-core.js'
		data-sap-ui-theme='sap_bluecrystal'
		data-sap-ui-libs='sap.m,sap.ui.core'>
    </script>

	<script>
      var oVBox = new sap.m.VBox({ width: "50%"});    
      
          var oFrenchFormat;
          var oEnglishFormat;
          
          var oDatePicker = new sap.m.DatePicker({ dateFormat: "long" });
      oDatePicker.setValue(new Date());

      oVBox.addItem(oDatePicker);
          oVBox.addItem(new sap.m.Button({
            text: "Set French locale", 
            press: function(oEvent) {
              if (!oFrenchFormat) {
                oFrenchFormat = sap.ui.core.format.DateFormat.getDateInstance({ style: "full"}, new sap.ui.core.Locale("fr_FR"));
              }
              var oDate = oDatePicker.getValue();
              oDatePicker._oDisplayFormat = oFrenchFormat;
              oDatePicker.setDisplayFormat("long");
              oDatePicker.setValue(oDate);
            }
          }));
          
          oVBox.addItem(new sap.m.Button({
            text: "Set US locale", 
            press: function(oEvent) {
              if (!oEnglishFormat) {
                oEnglishFormat = sap.ui.core.format.DateFormat.getDateInstance({ style: "full"}, new sap.ui.core.Locale("en_US"));
              }  
              var oDate = oDatePicker.getValue();
              oDatePicker._oDisplayFormat = oEnglishFormat;
              oDatePicker.setDisplayFormat("long");
              oDatePicker.setValue(oDate);
            }
          }));

      oVBox.placeAt("content");
	</script>
	</head>
	<body class="sapUiBody" id="content">
	</body>
</html>