Часовые пояса в Baserow - хранение и отображение дат

Baserow хранит все даты и время внутри в UTC, а отображает их пользователям в зависимости от настройки конкретного поля даты. Статья объясняет разницу между хранением и отображением, как настроить часовой пояс поля, как использовать функцию формулы todate_tz() и что происходит с датами при фильтрации и экспорте.

Обзор

Baserow хранит все даты и время во внутреннем формате UTC (Coordinated Universal Time), независимо от того, где находится пользователь. Это гарантирует согласованность данных вне зависимости от местоположения. При этом отображение дат можно настраивать через часовой пояс поля, который преобразует хранимое значение UTC в понятное локальное время.

Настройка часового пояса происходит на уровне поля - это даёт гибкость: одни поля даты можно показывать в местном времени каждого пользователя, а другие - в едином выбранном часовом поясе. Такой двойной подход одновременно поддерживает глобальную координацию (время встречи отображается в поясе каждого участника) и локальные требования (часы работы магазина всегда показаны в его собственном поясе).

Понимание того, как Baserow работает с часовыми поясами, помогает избежать типичных ошибок: назначение встречи не в то время, неверное толкование дедлайна в разных часовых поясах или запутанные значения дат для международной команды.

Работа с часовыми поясами в Baserow

Как Baserow хранит и отображает даты

Внутреннее хранение (UTC)

Все даты хранятся в UTC независимо от вашего часового пояса или того, как даты отображаются в таблицах. Такой универсальный формат хранения обеспечивает:

  • согласованность данных: одно и то же сохранённое значение представляет один и тот же момент времени в любой точке мира;
  • точность вычислений: разница во времени и арифметика с датами работают корректно;
  • надёжность импорта и экспорта: передача данных сохраняет точные метки времени;
  • интеграцию по API: внешние системы получают стандартизированные значения UTC.

Формат отображения (настраивается для каждого поля)

Хранение всегда идёт в UTC, но отображение можно настроить одним из двух способов через настройку поля даты :

Локальный часовой пояс пользователя (по умолчанию):

  • каждый участник видит даты, преобразованные в часовой пояс своего устройства;
  • встреча в «15:00» будет показана как 15:00 в Москве, 12:00 в Лондоне и 21:00 в Токио;
  • лучше всего подходит для: совместного планирования, отслеживания дедлайнов, управления глобальными событиями.

Фиксированный часовой пояс для всех пользователей:

  • все участники видят даты в одном заданном часовом поясе независимо от местоположения;
  • открытие магазина в «9:00 по тихоокеанскому времени» будет показано как 9:00 по тихоокеанскому времени для всех;
  • лучше всего подходит для: времени, привязанного к конкретному месту, часов работы, региональных мероприятий.

Отображение дат в разных часовых поясах

Способы настройки часового пояса

МетодЧто делаетПрименяется к
Настройка поляЕдиный часовой пояс для всего поляВсе строки этого поля
Формула (todate_tz)Динамический часовой пояс в зависимости от условияВычисляется для каждой строки отдельно
Локальное время пользователяПоказ времени в поясе каждого участникаПоведение по умолчанию

Как задать часовой пояс для поля даты

Настройте конкретный часовой пояс, который увидят все участники для определённого поля даты.

Чтобы задать фиксированный часовой пояс:

  1. нажмите стрелку раскрывающегося меню рядом с полем даты;
  2. выберите «Изменить поле» в меню;
  3. в панели настройки поля включите «Задать часовой пояс для всех участников»;
  4. выберите нужный часовой пояс из списка (например, «Europe/Moscow», «Europe/London»);
  5. нажмите «Сохранить», чтобы применить часовой пояс.

Настройка часового пояса в поле даты

По умолчанию используется часовой пояс GMT/UTC. После настройки часового пояса все пользователи видят даты в этом поясе независимо от своего местоположения.

Пример: задайте для поля «Время открытия магазина» часовой пояс «Europe/Moscow», чтобы все участники команды видели московское время, где бы они ни находились - в Калининграде, Владивостоке или другом городе.

Как использовать формулы с часовым поясом

Используйте функцию формулы todate_tz, чтобы отображать даты в разных часовых поясах на основе условий конкретной строки или создавать несколько представлений одной даты в разных поясах. Функция возвращает первый аргумент, преобразованный в дату, по формату из второго аргумента и часовому поясу из третьего.

Синтаксис функции todate_tz

todate_tz('значение_даты', 'формат', 'часовой_пояс')

Параметры:

  • значение_даты: строка даты или ссылка на поле, которое нужно преобразовать;
  • формат: шаблон формата даты;
  • часовой_пояс: целевой часовой пояс (см. список поддерживаемых поясов ниже).

Примеры формул:

// Преобразовать строку даты в амстердамское время
todate_tz('20210101', 'YYYYMMDD', 'Europe/Amsterdam')

// Преобразовать значение поля в токийское время
todate_tz(field('Дата события'), 'YYYY-MM-DD', 'Asia/Tokyo')

// Условный часовой пояс в зависимости от поля региона
if(field('Регион')='Европа',
   todate_tz(field('Дата'), 'YYYY-MM-DD', 'Europe/London'),
   todate_tz(field('Дата'), 'YYYY-MM-DD', 'America/New_York'))

Сценарии использования формул с часовым поясом

Работа с несколькими регионами: показывайте время события в поясе регионального офиса на основе поля региона.

Таблицы пересчёта часовых поясов: создайте поля, показывающие одно и то же время в нескольких часовых поясах (время события UTC, по московскому времени, по токийскому времени).

Перенос исторических данных: пересчитывайте даты из старых систем, использовавших другие соглашения о часовых поясах.

Требования соответствия нормам: показывайте метки времени в конкретном регуляторном часовом поясе, храня данные в UTC.

Поведение часовых поясов при фильтрации и экспорте

Фильтрация по дате с учётом часового пояса

При использовании фильтров по дате Baserow вычисляет результат на основе настроенного часового пояса:

  • поле с локальным временем пользователя: фильтр вычисляется относительно текущего часового пояса пользователя;
  • поле с фиксированным часовым поясом: фильтр вычисляется относительно этого пояса;
  • поле в UTC: фильтр вычисляется относительно UTC.

Это гарантирует, что запрос «покажи сегодняшние встречи» вернёт корректный результат независимо от настройки часового пояса.

Экспорт дат с учётом часового пояса

Копирование и вставка:

  • если в настройке поля включено «Показывать часовой пояс», скопированные значения будут включать смещение пояса;
  • например: «2025-01-15 14:00:00 MSK» вместо «2025-01-15 14:00:00».

Экспорт в CSV/Excel:

  • экспортированные даты включают информацию о часовом поясе, если он настроен;
  • формат зависит от настроек часового пояса и формата поля;
  • инструменты импорта могут сохранять данные о часовом поясе для целостности при повторном импорте.

Типовые сценарии работы с часовыми поясами

Сценарий 1: планирование встречи для глобальной команды

Задача: назначить встречу для участников из Москвы, Лондона и Токио.

Решение: используйте поле даты с локальным временем пользователя (по умолчанию). Введите «14:00 по московскому времени», и каждый увидит время в своём часовом поясе: 14:00 в Москве, 11:00 в Лондоне, 20:00 в Токио.

Сценарий 2: часы работы магазина

Задача: показать одинаковые часы работы розничных точек независимо от того, откуда сотрудники просматривают таблицу.

Решение: задайте для поля часовой пояс магазина (например, «Europe/Moscow»). Все сотрудники увидят «9:00-18:00 по московскому времени» независимо от собственного местоположения.

Сценарий 3: управление мероприятиями в нескольких регионах

Задача: компания проводит мероприятия в разных регионах, для каждого нужно локальное отображение времени.

Решение: используйте формулу todate_tz вместе с полем региона, чтобы показать нужный часовой пояс для каждого мероприятия.

Сценарий 4: аудит исторических меток времени

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

Решение: создайте поле формулы, преобразующее поле «Дата создания» в нужный регуляторный часовой пояс с помощью todate_tz.

Часто задаваемые вопросы

Что произойдёт, если я изменю настройку часового пояса поля? Baserow немедленно пересчитывает отображение всех дат этого поля. Хранение в UTC при этом никогда не меняется - меняется только преобразование для отображения. Это значит, что часовой пояс можно менять свободно, не теряя точности данных.

Можно ли задать разные часовые пояса для разных представлений одной таблицы? Нет, настройка часового пояса задаётся на уровне поля, а не представления. Все представления показывают один и тот же часовой пояс для конкретного поля. Чтобы показать несколько часовых поясов одновременно, создайте отдельные поля формулы с todate_tz для каждого нужного пояса.

Как Baserow обрабатывает переход на летнее время? Baserow использует базу часовых поясов IANA, которая включает правила перехода на летнее время для всех поддерживаемых поясов. Даты автоматически подстраиваются при переходах - встреча, назначенная на «14:00 по восточному времени», отображается корректно независимо от того, действует стандартное или летнее время.

Какой часовой пояс используется при создании нового поля даты? По умолчанию новое поле даты использует часовой пояс устройства пользователя (определяется автоматически из настроек браузера). Это можно сразу поменять на фиксированный часовой пояс или оставить локальным.

Можно ли использовать формулы с часовым поясом в обычных полях даты или только в полях формулы? Функция todate_tz работает только в полях формулы. Обычные поля даты используют настройку часового пояса из своей панели конфигурации. Для динамического поведения по часовому поясу создайте поле формулы, ссылающееся на поле даты.

Что происходит с часовыми поясами при импорте данных? При импорте из CSV/Excel укажите, содержат ли данные информацию о часовом поясе. Baserow пытается разобрать смещение часового пояса и преобразовать значение в UTC. Если пояс не указан, Baserow принимает данные как UTC либо предлагает указать исходный часовой пояс.

Поддерживаемые часовые пояса

Baserow поддерживает все стандартные идентификаторы часовых поясов базы IANA. Выбирайте пояс из выпадающего списка в настройке поля или указывайте его в формулах todate_tz.

Africa: Africa/Abidjan, Africa/Accra, Africa/Addis_Ababa, Africa/Algiers, Africa/Cairo, Africa/Casablanca, Africa/Johannesburg, Africa/Lagos, Africa/Nairobi, Africa/Tripoli, Africa/Tunis и другие города региона.

Americas: America/Anchorage, America/Bogota, America/Chicago, America/Denver, America/Los_Angeles, America/Mexico_City, America/New_York, America/Sao_Paulo, America/Toronto, America/Vancouver и другие города региона.

Antarctica: Antarctica/Casey, Antarctica/Davis, Antarctica/Mawson, Antarctica/Palmer, Antarctica/Rothera и другие исследовательские станции.

Asia: Asia/Almaty, Asia/Baku, Asia/Bangkok, Asia/Dubai, Asia/Hong_Kong, Asia/Irkutsk, Asia/Kolkata, Asia/Krasnoyarsk, Asia/Novosibirsk, Asia/Omsk, Asia/Seoul, Asia/Shanghai, Asia/Singapore, Asia/Tokyo, Asia/Vladivostok, Asia/Yekaterinburg и другие города региона.

Atlantic: Atlantic/Azores, Atlantic/Bermuda, Atlantic/Canary, Atlantic/Cape_Verde, Atlantic/Reykjavik и другие.

Australia: Australia/Adelaide, Australia/Brisbane, Australia/Darwin, Australia/Melbourne, Australia/Perth, Australia/Sydney и другие города региона.

Europe: Europe/Amsterdam, Europe/Berlin, Europe/Kaliningrad, Europe/Kiev, Europe/London, Europe/Madrid, Europe/Minsk, Europe/Moscow, Europe/Paris, Europe/Rome, Europe/Samara, Europe/Warsaw и другие города региона.

Indian Ocean: Indian/Chagos, Indian/Maldives, Indian/Mauritius, Indian/Reunion и другие.

Pacific: Pacific/Auckland, Pacific/Fiji, Pacific/Guam, Pacific/Honolulu, Pacific/Tahiti и другие острова региона.

Прочее: GMT, UTC.

Что дальше

После настройки часовых поясов читайте «Агрегацию в подвале таблицы» , чтобы добавить суммы, средние и другие сводные значения по колонкам, включая поля даты. Общий список типов полей - в статье «Обзор типов полей» .

Проверено OpenNix LLC · Обновлено