Глобальный контекст.СмещениеСтандартногоВремени

Методы · StandardTimeOffset

Получает смещение в секундах стандартного времени заданного часового пояса относительно универсального времени без учета летнего времени для заданного универсального времени. Если <УниверсальноеВремя> = Неопределено, то возвращает смещение стандартного времени, действующее в заданном часовом поясе.

Синтаксис

СмещениеСтандартногоВремени(<ЧасовойПояс>, <УниверсальноеВремя>)
Полное описание, параметры и ограничения

Глобальный контекст.СмещениеСтандартногоВремени (Global context.StandardTimeOffset)

Глобальный контекст (Global context)

СмещениеСтандартногоВремени (StandardTimeOffset)

Доступен, начиная с версии 8.2.

Синтаксис:
СмещениеСтандартногоВремени(<ЧасовойПояс>, <УниверсальноеВремя>)
Параметры:

<ЧасовойПояс> (необязательный)
Тип: Строка, Неопределено.
Идентификатор часового пояса. Если Неопределено, то часовой пояс компьютера.
Список допустимых часовых поясов может быть получен методом ПолучитьДопустимыеЧасовыеПояса.
Кроме того, возможно задание часовых поясов смещением от универсального времени (часовые пояса GMT) в формате:
GMT{+/-}h[h][:mm]
где hh=0:23, mm=0:59.
Значение по умолчанию: Неопределено.

<УниверсальноеВремя> (необязательный)
Тип: Дата, Неопределено.
Универсальное время (UTC), для которого нужно определить смещение или Неопределено.
Значение по умолчанию: Неопределено.
Возвращаемое значение:
Тип: Число.

Описание:

Получает смещение в секундах стандартного времени заданного часового пояса относительно универсального времени без учета летнего времени для заданного универсального времени. Если <УниверсальноеВремя> = Неопределено, то возвращает смещение стандартного времени, действующее в заданном часовом поясе.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Перевести время учебного заказа с учётом двух видов смещения

Из 12:00 UTC получаем 15:30 в постоянном поясе GMT+3:30. Разбираем единицы результата: секунды, а не часы и не миллисекунды.

Где и как запускать

Полный серверный общий модуль учебной копии. Только чтение настроек и вычисления в памяти.

Подготовка

  1. Работайте в отдельной учебной копии базы. Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль урока и вызовите ВыполнитьПример() из серверного обработчика учебной команды.

  2. Код выполняется на сервере: часть функций локализации и часовых поясов недоступна непосредственно в тонком клиенте. Реквизиты пользователя, региональные настройки и часовые пояса код не меняет.

  3. Для двух уроков о метаданных используйте копию КА2 Progress: в исходном Languages/Русский.xml действительно есть язык Русский с КодЯзыка = ru. Остальные уроки не требуют объектов конкретной конфигурации.

Процедура ВыполнитьПример() Экспорт
    МоментUTC = Дата(2026, 1, 15, 12, 0, 0);
    Пояс = "GMT+3:30";
    Стандартное = СмещениеСтандартногоВремени(Пояс, МоментUTC);
    Летнее = СмещениеЛетнегоВремени(Пояс, МоментUTC);
    Местное = МестноеВремя(МоментUTC, Пояс);
    Сообщить(Стандартное = 12600);
    Сообщить(Летнее = 0);
    Сообщить(Местное = Дата(2026, 1, 15, 15, 30, 0));
    Сообщить(Местное - МоментUTC = Стандартное + Летнее);
    Сообщить(УниверсальноеВремя(Местное, Пояс) = МоментUTC);
    Сообщить("Суммарное смещение в часах: " + Строка((Стандартное + Летнее) / 3600));
КонецПроцедуры

Разбор по шагам

  1. Первый аргумент двух функций смещения — пояс, второй — именно универсальный момент. Передаём фиксированную дату, чтобы урок не зависел от сегодняшнего дня.

  2. СмещениеСтандартногоВремени учитывает базовое смещение относительно UTC. СмещениеЛетнегоВремени — добавка относительно стандартного времени; их результаты выражены в секундах.

  3. В постоянном GMT+3:30 нет сезонного перехода: стандартное смещение равно 3,5 × 3600 = 12600, летнее равно 0.

  4. Реальное преобразование делает МестноеВремя. Обратное УниверсальноеВремя проверяет исходный момент; собственная арифметика используется только как контроль.

  5. У именованных поясов правила могут зависеть от даты. Для даты на сезонном переходе обратное преобразование местного времени требует отдельного анализа неоднозначности.

Как проверить результат

  1. Пять контрольных Истина; последняя строка показывает 3,5 часа в текущем формате числа.

  2. Меняйте учебный постоянный пояс и ожидаемые даты согласованно; не сохраняйте исходное ожидание 12600 для другого пояса.

Ожидаемый результат

Время заказа переведено без изменения настроек базы и без ошибки в единицах смещения.

На что обратить внимание

  1. Не передавайте местное время во второй аргумент функций, которые требуют UTC.

  2. Не вычитайте летнее смещение из стандартного: для получения полного смещения нужна сумма.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.