Форматирование Даты (sap.ui.model.type.Date) в SAPUI5

Для вывода даты в удобных и заданных форматах используются средства форматирования даты в SAPUI5.

Тип модели формата Дата: sap.ui.model.type.Date.

Выведем в форме поля даты в таких форматах:

формат даты в sapui5

Создадим новый проект приложения по шаблону “SAPUI5 Application”.

Для изучения и загрузки в SAP Web IDE вы можете скачать здесь: abc.training.test6.


В контроллере представления запишем JSON модель _data и предопределим ее в функции onInit:

JSON модель в контроллере

 
 
  1. sap.ui.define([
  2.       "sap/ui/core/mvc/Controller",
  3.       "sap/ui/model/json/JSONModel"
  4. ], function(Controller, JSONModel) {
  5.       "use strict";
  6.       return Controller.extend("abc.training.test6.controller.ViewMain", {
  7.             _data: {
  8.                   "dateStr": "2018.03.08",
  9.                   "date": new Date(2018, 2, 1)
  10.             },
  11.             onInit: function() {
  12.                   var oModel = new JSONModel(this._data);
  13.                   this.getView().setModel(oModel);
  14.             }
  15.       });
  16. });

В модели представлены два поля:

  1. dateStr – текстовое поле,
  2. date – объект даты.

В представлении ViewMain выведем эти поля модели в определенных форматах. Это делается средствами форматирования SAPUI5 прописав type: ‘sap.ui.model.type.Date’ и formatOptions:

sap.ui.model.type.Date

 
 
  1. <mvc:View controllerName="abc.training.test6.controller.ViewMain" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:mvc="sap.ui.core.mvc"
  2.       displayBlock="true" xmlns="sap.m" xmlns:form="sap.ui.layout.form">
  3.       <App>
  4.             <pages>
  5.                   <Page title="{i18n>title}">
  6.                         <content>
  7.                               <form:SimpleForm width="auto" class="sapUiResponsiveMargin" layout="ResponsiveGridLayout" labelSpanL="3" labelSpanM="3" emptySpanL="4"
  8.                                     emptySpanM="4" columnsL="1" columnsM="1" title="Стили форматирования дат" editable="true">
  9.                                     <form:content>
  10.                                           <Label text="Полный"/>
  11.                                           <Text text="{ path: '/dateStr', type: 'sap.ui.model.type.Date', formatOptions: { style: 'full', source: { pattern: 'yyyy.MM.dd' } } }"/>
  12.                                           <Label text="Длинный"/>
  13.                                           <Text text="{ path: '/dateStr', type: 'sap.ui.model.type.Date', formatOptions: { style: 'long', source: { pattern: 'yyyy.MM.dd' } } }"/>
  14.                                           <Label text="Средний"/>
  15.                                           <Text text="{ path: '/dateStr', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium', source: { pattern: 'yyyy.MM.dd' } } }"/>
  16.                                           <Label text="Короткий"/>
  17.                                           <Text text="{ path: '/dateStr', type: 'sap.ui.model.type.Date', formatOptions: { style: 'short', source: { pattern: 'yyyy.MM.dd' } } }"/>
  18.                                           <Label text="Ввод даты (в модели текстовое поле)"/>
  19.                                           <DatePicker
  20.                                                 value="{ path: '/dateStr', type: 'sap.ui.model.type.Date', formatOptions: { style: 'full', source: { pattern: 'yyyy.MM.dd' } } }"/>
  21.                                           <Label text="Ввод даты (в модели объект даты)"/>
  22.                                           <DatePicker dateValue="{ path: '/date', formatOptions: { style: 'medium' } }"/>
  23.                                     </form:content>
  24.                               </form:SimpleForm>
  25.                         </content>
  26.                   </Page>
  27.             </pages>
  28.       </App>
  29. </mvc:View>

Параметры для форматирования даты:

Примеры легко повторить в Console браузера Google Chrome.

  • format: форматируем дату в необходимый вид используя предопределенные символы. Используемые символы: Век (G), Год (y/Y), Квартал (q/Q), Месяц (M/L), Неделя (w/W), День недели (E/c), День (d/D), Час (h/H/k/K), минута (m), секунда (s), Временная зона (z/Z/v/V/O/X/x).
    Пример:

     
     
    1. var oFormat = sap.ui.core.format.DateFormat.getInstance({
    2.       format: "yMMMd"
    3. });
    4. oFormat.format(new Date());
    5. В русской локализации ответ: "7 мар. 2018 г."
  • pattern — формат даты на основе заданного шаблона.
    Пример:

     
     
    1. var oDateFormat = sap.ui.core.format.DateFormat.getDateInstance({
    2. pattern: "EEE, MMM d, yyyy"
    3. });
    4. var oNow = new Date();
    5. oDateFormat.format(oNow);
    6. В русской локализации ответ: "ср, мар. 7, 2018"
  • style. Может принимать значения full, short, medium или long.

В представлении обратите внимание на тег <DatePicker>, который выводит поле с календарем.

На этом все, будут вопросы пишите в комментах. Удачи в изучении SAPUI5.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.