# DateFormat

Эта переменная среды определяет формат даты, используемый по умолчанию в приложении, а также используемый функциями возврата даты, такими как `date()` и `date#()`. Формат используется для интерпретации и форматирования дат. Если переменная не определена, при выполнении скрипта извлекается формат даты, заданный региональными настройками.

Синтаксис:

DateFormat

Примеры функции DateFormat

| Пример | Результат |
| --- | --- |
| `Set DateFormat='M/D/YY'; //(US format)` | Это использование функции `DateFormat` определяет дату в формате США — «месяц/дата/год». |
| `Set DateFormat='DD/MM/YY'; //(UK date format)` | Это использование функции `DateFormat` определяет дату в формате Соединенного Королевства — «дата/месяц/год». |
| `Set DateFormat='YYYY/MM/DD'; //(ISO date format)` | Это использование функции `DateFormat` определяет дату в формате ISO — «год/месяц/дата». |

## Региональные настройки

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: MM/DD/YYYY. Формат даты указан в операторе `SET DateFormat` скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами. Для получения дополнительной информации см. раздел [Изменение региональных настроек для приложений и скриптов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Региональные настройки по умолчанию в приложениях основаны на профиле пользователя. Эти параметры регионального формата не связаны с языком, отображаемым в интерфейсе пользователя Qlik Cloud. Qlik Cloud будет отображаться на языке, который используется в браузере.

Если вы — разработчик приложений, то можете задать регион по умолчанию для создаваемых приложений. Для получения дополнительной информации см. раздел [Установка предпочтительных региональных настроек для создания приложений и скриптов в Аналитика Qlik Cloud](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Пример 1. Системные переменные по умолчанию

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных с датами.

* Функция `DateFormat`, которая будет использовать формат даты США.

В этом примере набор данных загружается в таблицу под именем `Transactions`. Она включает поле `date`. Используется определение `DateFormat` США. Этот шаблон будет использоваться для неявного преобразования текста в дату при загрузке текстовых дат.

Скрипт загрузки

```

Set DateFormat='MM/DD/YYYY'; 

Transactions: 
LOAD 
date, 
month(date) as month, 
id, 
amount 
INLINE  
[ 
date,id,amount 
01/01/2022,1,1000 
02/01/2022,2,2123 
03/01/2022,3,4124 
04/01/2022,4,2431 
]; 						
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`
* `month`

Создайте эту меру:

`=sum(amount)`

Результирующая таблица

| date | месяц | sum(amount) |
| --- | --- | --- |
| 01/01/2022 | Янв | 1000 |
| 02/01/2022 | Фев | 2123 |
| 03/01/2022 | Мар | 4124 |
| 04/01/2022 | Апр | 2431 |

Определение `DateFormat` MM/DD/YYYY используется для неявного преобразования текста в даты. Именно поэтому поле `date` правильно интерпретируется как дата. Тот же формат используется для отображения даты, как показано в результатах таблицы.

## Пример 2. Изменение системной переменной

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Тот же набор данных из предыдущего примера.

* Функция `DateFormat`, которая будет использовать формат DD/MM/YYYY.

Скрипт загрузки

```

SET DateFormat='DD/MM/YYYY'; 
Transactions: 
LOAD 
date, 
month(date) as month, 
id, 
amount 
INLINE  
[ 
date,id,amount 
01/01/2022,1,1000 
02/01/2022,2,2123 
03/01/2022,3,4124 
04/01/2022,4,2431 
]; 					
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`
* `month`

Создайте это измерение:

`=sum(amount)`

Результирующая таблица

| date | месяц | sum(amount) |
| --- | --- | --- |
| 01/01/2022 | Янв | 1000 |
| 02/01/2022 | Янв | 2123 |
| 03/01/2022 | Янв | 4124 |
| 04/01/2022 | Янв | 2431 |

Так как для `DateFormat` задано определение DD/MM/YYYY, мы видим, что две цифры после первой косой черты (/) интерпретированы как месяц, таким образом, все записи относятся к январю.

## Пример 3. Интерпретация данных

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных с датами в числовом формате.

* Переменная `DateFormat`, которая будет использовать формат DD/MM/YYYY.

* Переменная `date()`.

Скрипт загрузки

```

SET DateFormat='MM/DD/YYYY'; 
						
Transactions: 
Load 
date(numerical_date), 
month(date(numerical_date)) as month, 
id, 
amount 
Inline  
[ 
numerical_date,id,amount 
43254,1,1000 
43255,2,2123 
43256,3,4124 
43258,4,2431 
]; 						
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`
* `month`

Создайте это измерение:

`=sum(amount)`

Результирующая таблица

| date | месяц | sum(amount) |
| --- | --- | --- |
| 06/03/2022 | Июн | 1000 |
| 06/04/2022 | Июн | 2123 |
| 06/05/2022 | Июнь | 4124 |
| 06/07/2022 | Июнь | 2431 |

В скрипте загрузки используется функция `date()` для преобразования числовой даты в формат даты. Так как не предоставлен определенный формат для второго аргумента функции, используется `DateFormat`. В результате этого для поля даты используется формат MM/DD/YYYY.

## Пример 4. Иностранный формат даты

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/DateFormat.htm)

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных с датами.

* Переменная `DateFormat`, которая использует формат DD/MM/YYYY, но раскомментирована косой чертой.

Скрипт загрузки

```
// SET DateFormat='DD/MM/YYYY'; 

 
Transactions: 
Load 
date, 
month(date) as month, 
id, 
amount 
Inline  
[ 
date,id,amount 
22-05-2022,1,1000 
23-05-2022,2,2123 
24-05-2022,3,4124 
25-05-2022,4,2431 
]; 
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `date`
* `month`

Создайте это измерение:

`=sum(amount)`

Результирующая таблица

| date | месяц | sum(amount) |
| --- | --- | --- |
| 22-05-2022 | - | 1000 |
| 23-05-2022 | - | 2123 |
| 24-05-2022 | - | 4124 |
| 25-05-2022 | - | 2431 |

В начальном скрипте загрузки для `DateFormat` по умолчанию используется MM/DD/YYYY. Так как поле `date` в наборе данных transactions имеет другой формат, оно не интерпретируется как дата. Это видно в таблице результатов, где в поле `month` отображаются значения null.

Можно проверить интерпретируемые типы данных в окне просмотра модели данных: обратите внимание на свойства Tags поля `date`:

Предварительный просмотр таблицы `Transactions`. Обратите внимание на свойства Tags для поля `date`, указывающие на то, что текстовые входные данные не были неявно преобразованы в дату/метку времени.

Предварительный просмотр таблицы `Transactions`. Обратите внимание на свойства Tags для поля `date`, указывающие на то, что текстовые входные данные не были неявно преобразованы в дату/метку времени.

Предварительный просмотр таблицы `Transactions`Transactions. Обратите внимание на свойства Tags для поля `date`date, указывающие на то, что текстовые входные данные не были неявно преобразованы в дату/метку времени. ![Предварительный просмотр таблицы Transactions с выделенным полем date.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_dmv_TransactionsTablePreview1.png)

Это можно решить, включив системную переменную `DateFormat`:

`// SET DateFormat='DD/MM/YYYY'`;

Удалите двойную косую черту и перезагрузите данные.

Предварительный просмотр таблицы `Transactions`. Обратите внимание на свойства Tags для поля `date`, указывающие на то, что текстовые входные данные были неявно преобразованы в дату/метку времени.

Предварительный просмотр таблицы `Transactions`. Обратите внимание на свойства Tags для поля `date`, указывающие на то, что текстовые входные данные были неявно преобразованы в дату/метку времени.

Предварительный просмотр таблицы `Transactions`Transactions. Обратите внимание на свойства Tags для поля `date`date, указывающие на то, что текстовые входные данные были неявно преобразованы в дату/метку времени. ![Предварительный просмотр таблицы Transactions после изменения системной переменной DateFormat.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_dmv_TransactionsTablePreview2.png)