B.4. Файлы конфигурации даты/времени#
B.4. Файлы конфигурации даты/времени #
Поскольку сокращения часовых поясов не хорошо стандартизированы, Tantor BE предоставляет возможность настроить набор сокращений, принимаемых сервером. Параметр времени выполнения timezone_abbreviations определяет активный набор сокращений. Хотя этот параметр может быть изменен любым пользователем базы данных, возможные значения для него находятся под контролем администратора базы данных - на самом деле это имена файлов конфигурации, хранящихся в .../share/timezonesets/
установочного каталога. Добавляя или изменяя файлы в этом каталоге, администратор может установить локальную политику для сокращений часовых поясов.
timezone_abbreviations
может быть установлено в любое имя файла, найденное в .../share/timezonesets/
, если имя файла состоит только из букв. (Запрет на использование не-буквенных символов в timezone_abbreviations
предотвращает чтение файлов вне заданного каталога, а также чтение резервных копий редактора и других ненужных файлов).
Файл сокращений часовых поясов может содержать пустые строки и комментарии,
начинающиеся с #
. Строки, не являющиеся комментарием, должны иметь один из
следующих форматов:
zone_abbreviation
offset
zone_abbreviation
offset
Dzone_abbreviation
time_zone_name
@INCLUDEfile_name
@OVERRIDE
Зона zone_abbreviation
- это просто сокращение,
которое определяется. offset
- это целое число,
указывающее эквивалентное смещение в секундах от UTC, положительное значение
означает восток от Гринвича, а отрицательное - запад. Например, -18000 будет
означать пять часов западнее Гринвича, или стандартное время на восточном побережье
Северной Америки. D
указывает, что название зоны представляет
локальное летнее время, а не стандартное время.
В качестве альтернативы можно указать time_zone_name
, ссылающийся
на имя зоны, определенной в базе данных часовых поясов IANA. Определение зоны
проверяется, чтобы узнать, использовалось ли сокращение в этой зоне или использовалось ли
ранее, и если да, то используется соответствующее значение - то есть
значение, которое было актуальным на момент времени, для которого определяется значение отметки времени,
или значение, использовавшееся непосредственно перед этим временем, если оно
не было актуальным в то время, или самое старое значение, если оно использовалось только
после этого времени. Это поведение является необходимым для работы с
сокращениями, значение которых исторически менялось. Также допускается
определение сокращения в терминах имени зоны, в которой это
сокращение не появляется; в этом случае использование сокращения эквивалентно
записи имени зоны.
Подсказка
Использование простого целочисленного offset
предпочтительно, когда определяется сокращение, смещение относительно UTC которого никогда не менялось, так как такие сокращения обрабатываются гораздо быстрее, чем те, которые требуют обращения к определению часового пояса.
Синтаксис @INCLUDE
позволяет включать другой файл из каталога .../share/timezonesets/
. Включение может быть вложенным, но с ограниченной глубиной.
Синтаксис @OVERRIDE
указывает, что последующие записи в файле могут переопределить предыдущие записи (обычно записи, полученные из включенных файлов). Без этого конфликтующие определения одного и того же сокращения часового пояса считаются ошибкой.
В исходной установке файл Default
содержит все не конфликтующие сокращения часовых поясов для большей части мира. Дополнительные файлы Australia
и India
предоставляются для этих регионов: эти файлы сначала включают файл Default
, а затем добавляют или изменяют сокращения по необходимости.
Для справки, стандартная установка также содержит файлы Africa.txt
, America.txt
и т. д., содержащие информацию о каждом известном сокращении часового пояса, используемого в соответствии с базой данных часовых поясов IANA. Определения имен зон, найденные в этих файлах, могут быть скопированы и вставлены в пользовательский конфигурационный файл по мере необходимости. Обратите внимание, что эти файлы не могут быть непосредственно ссылкой на настройки timezone_abbreviations
, из-за точки, встроенной в их имена.
Примечание
Если происходит ошибка при чтении набора сокращений часовых поясов, новое значение не применяется и старый набор сохраняется. Если ошибка возникает при запуске базы данных, запуск завершается неудачно.
Предостережение
Аббревиатуры часовых поясов, определенные в файле конфигурации, переопределяют
не связанные с часовыми поясами значения, встроенные в Tantor BE.
Например, в файле конфигурации Australia
определена
аббревиатура SAT
(для Южно-Австралийского стандартного времени). Когда этот
файл активен, SAT
не будет распознан как аббревиатура
для субботы.
Предостережение
Если вы изменяете файлы в .../share/timezonesets/
,
вам следует создать резервные копии — обычный дамп базы данных
не будет включать этот каталог.