Время std что это

standard time

Смотреть что такое «standard time» в других словарях:

Standard time — is the result of synchronizing clocks in different geographical locations within a time zone to the same time rather than using the local meridian as in local mean time or solar time. The time so set has come to be defined in terms of offsets… … Wikipedia

Standard time — Time Time, n.; pl. . [OE. time, AS. t[=i]ma, akin to t[=i]d time, and to Icel. t[=i]mi, Dan. time an hour, Sw. timme. [root]58. See , n.] 1. Duration, considered independently of any system of measurement or any employment of terms… … The Collaborative International Dictionary of English

standard time — Time measured by a standard adapted to mean solar time to convenient use in commerce, business and the ordinary affairs of life, the country being divided into time zones, each zone having as an accepted time, the actual sun time at the middle… … Ballentine’s law dictionary

standard time — UK US noun [U] ► MEASURES the time that is officially used in a country or an area of a country: »In the fall, staff get paid an hour overtime during the return to standard time. → Compare DAYLIGHT SAVING TIME(Cf. ↑daylight saving time), GMT(Cf.… … Financial and business terms

Standard Time — (Einheitszeit in den Vereinigten Staaten von Amerika). Bis Ende 1883 rechneten die Eisenbahnen der Vereinigten Staaten eine jede für ihr Netz nach Ortszeit. Die hieraus bei der großen Ausdehnung der einzelnen Eisenbahnnetze hervorgehenden… … Enzyklopädie des Eisenbahnwesens

standard time — ☆ standard time n. 1. the time in any of the 24 time zones, each an hour apart, into which the earth is divided: it is based on distance east or west of Greenwich, England; the 8 zones of North America (Atlantic, Eastern, Central, Mountain,… … English World dictionary

standard time — n [U] the time to which all clocks in a particular area of the world are set … Dictionary of contemporary English

standard time — the civil time officially adopted for a country or region, usually the civil time of some specific meridian lying within the region. The standard time zones in the U.S. (Atlantic time, Eastern time, Central time, Mountain time, Pacific time,… … Universalium

standard time — noun the official time in a local region (adjusted for location around the Earth); established by law or custom • Syn: ↑civil time, ↑local time • Hypernyms: ↑time • Hyponyms: ↑Atlantic Time, ↑A … Useful english dictionary

standard\ time — • ST • standard time • slow time noun Clock time that is set by law or agreement in a country or in part of a country; especially, in the United States: the clock time used between fall and spring, which is an hour slower than the time used in… … Словарь американских идиом

Источник

Практика работы со временем в разных часовых поясах в unix-like системах

Если ваше приложение зависит не только от локального времени, но и от его представлении в других часовых поясах, вы наверняка сталкивались со сложностью представления времени в разных временных зонах. Не сталкивались? Значит вы не портировали своё приложение в мир Unix.

Действительно, в ОС Windows для работы с временными зонами программисту предоставляется удобный набор специализированных функций WinAPI. Примером могут служить структура TIME_ZONE_INFORMATION и функция GetTimeZoneInformation к ней в придачу.

Но что делать, если вам необходимо знать смещение относительно UTC+0, правила перехода на «летнее время», учитывать при этом високосные годы с високосными секундами и прочую специфическую информацию для какого-нибудь региона, да всё это в unix-подобных операционных системах? Статья посвящена практике работы со всем этим барахлом на языке C/C++.

Эта тема неоднократно освещалась во многих статьях с разных точек зрения, но редко с практической на примерах конкретных языков, систем и технологий. Примеры можно найти на Stack Overflow (коих вопросов там огромное множество), да и на Хабре эту тему затрагивали достаточно глубоко, но с теоретической точки зрения. Кроме того, есть даже мини-исследование на тему локального времени, из которого можно почерпнуть, что проблема компьютерного времени совсем не тривиальна, какой кажется на первый взгляд. Проведя собственное расследование, я хотел бы кратко и доходчиво поделиться полученным немалым количеством сведений, оформив их в виде способов преобразования времени в разных часовых поясах.

Классика: стандартная библиотека языка C

Пример кода, использующего такой подход:

tz database, или жонглирование байтами

Использование в своих целях базы данных Олсона — наиболее предпочтительный вариант. Плюсы очевидны: база наиболее полным образом отражает все мыслимые правила переходов для любого уголка Земли (учитывая изменения в этих правилах с начала прошлого века), распространяется со многими системами (см. /usr/share/zoneinfo ) и имеет унифицированный формат, при этом база обновляется вместе с системой. Однако, попробовав поработать с ней, я решил отказаться и от этого варианта.

База распространяется в бинарном формате (для этого используется компилятор zic ). Описание формата можно найти в заголовочном файле tzfile.h (для его поиска воспользуйтесь официальным FTP базы). Инструментов для работы с базой я так и не нашел (возможно, плохо искал?). Но попробовав прочитать файлик нужной временной зоны, я столкнулся с проблемой интерпретации данных — во всех этих тонкостях и терминологии можно голову свернуть, забыв о цели всего этого копания. И, чтобы абстрагироваться от подобных мелочей, было решено пользоваться наиболее адекватным и удобным инструментом.

Boost.Date_Time

Как это часто бывает в подобных ситуациях, на помощь приходит именно boost. О широких возможностях набора библиотек Date_Time уже была статья, содержащая краткий перевод официальной документации. Кстати, хорошая новость для тех, кто не хочет вводить лишние зависимости в свой проект — библиотека является header-only (за исключением пары специфичных мест вроде создания объекта временной метки из строки определенного формата).

Для решения вопроса есть два пути: записывать правила для нужной временной зоны хардкодом в программе (и потом ненавидеть себя за это), либо хранить все правила в специальном файле CSV-формата. Такой файлик можно впоследствии автоматически обновлять (и поддерживать правила переходов в актуальном состоянии, что чрезвычайно важно). Файл распространяется с дистрибутивом boost’а (носит название date_time_zonespec.csv ), но может быть взят и из других мест. Плюс использования файла, кроме прочего, — в нём хранятся правила для всех регионов.

Без минусов тоже не обойдется. Что, если вам понадобится конвертировать ту временную метку, которая находится где-нибудь в начале двадцатого столетия, когда правила перехода были иными? Такие случаи тоже придется учитывать, и, к сожалению, boost здесь может мало помочь.

Для примера приведу код, использующий для конвертирования времени возможности набора библиотек Date_Time.

Источник

Время std что это. Смотреть фото Время std что это. Смотреть картинку Время std что это. Картинка про Время std что это. Фото Время std что это

СОДЕРЖАНИЕ

История стандартного времени

В течение XIX века регулярные пароходы и поезда требовали стандартизации времени в промышленно развитых странах.

Великобритания

Стандартизированная система времени была впервые использована британскими железными дорогами 1 декабря 1847 года, когда они перешли с местного среднего времени, которое варьировалось от места к месту, на среднее время по Гринвичу ( GMT ). Ему также было присвоено название « железнодорожное время», что отражает важную роль, которую в его создании сыграли железнодорожные компании. К 1855 году подавляющее большинство государственных часов Великобритании были переведены на GMT.

Северная Америка

Время std что это. Смотреть фото Время std что это. Смотреть картинку Время std что это. Картинка про Время std что это. Фото Время std что это

Стандартное время не было введено в закон США до тех пор, пока Закон о стандартном времени 1918 года не установил стандартное время в часовых поясах; закон также ввел летнее время (DST). Часть закона о переходе на летнее время была отменена в 1919 году из-за президентского вето, но была восстановлена ​​на национальном уровне во время Второй мировой войны. В 2007 году в США был принят федеральный закон, официально закрепляющий использование всемирного координированного времени в качестве основы стандартного времени, а также роль министра торговли (по сути, Национального института стандартов и технологий ) и министра военно-морского флота (по сути, обсерватории ВМС США ) в интерпретации стандартного времени.

В 1999 году стандартное время было занесено в Зал славы железных дорог Северной Америки в категории «Национальные: технические инновации».

Нидерланды

Переход на нынешний центральноевропейский часовой пояс произошел 16 мая 1940 года. Немецкие оккупанты приказали перевести часы на час сорок минут вперед. Это время сохранялось летом и зимой в течение 1941 и 1942 годов. Только в ноябре 1942 года было введено другое зимнее время, и время было скорректировано на один час назад. Это длилось всего три года; после освобождения Нидерландов в 1945 году летнее время было отменено более чем на тридцать лет, поэтому в те годы стандартное время было на 40 минут раньше первоначального амстердамского времени. По состоянию на 2017 год в Нидерландах используется центральноевропейское время (GMT + 1 зимой, GMT + 2 летом, что значительно отличается от времени Амстердама).

Новая Зеландия

В 1868 году Новая Зеландия была первой страной в мире, установившей общенациональное стандартное время.

Телеграфный кабель между двумя главными островами Новой Зеландией стал подстрекательством фактора для создания «Новой Зеландии времени». В 1868 году Телеграфный департамент принял « Веллингтонское время» в качестве стандартного времени во всех своих офисах, чтобы можно было синхронизировать время открытия и закрытия. Почтовое отделение, которое обычно находилось в одном здании, последовало его примеру. Однако протесты, которые в то время диктовались одним правительственным ведомством, привели к принятию в парламенте постановления об установлении стандартного времени для всей страны.

Директор Геологической службы Джеймс Гектор выбрал новозеландское время на меридиане 172 ° 30′E. Это было очень близко к средней долготе страны и точно 11 + 1 / 2 часа до времениГринвичу. Он вступил в силу 2 ноября 1868 года.

Более пятидесяти лет Колониальная обсерватория службы времени в Веллингтоне определяла правильное время каждое утро. Ежедневно в 9 часов утра его отправляли азбукой Морзе в почтовые отделения и железнодорожные станции по всей стране. В 1920 году начали транслироваться радиосигналы времени, что значительно повысило точность времени по всей стране.

Источник

Основные концепции библиотеки chrono (C++)

Работа со временем как с безразмерной величиной может приводить к недоразумениям и ошибкам конвертации временных единиц измерения:

– Слушай, ты не помнишь, мы в sleep передаем секунды или миллисекунды?

– Блин, оказывается у меня в часе 360 секунд, ноль пропустил.

Для избежания таких ошибок предусмотрена библиотека chrono (namespace std::chrono). Она была добавлена в C++11 и дорабатывалась в поздних стандартах. Теперь все логично:

Библиотека реализует следующие концепции:

std::ratio

std::ratio – шаблонный класс, реализующий compile-time обыкновенную дробь (m/n). Он не относится к chrono, но активно используется этой библиотекой, поэтому, в первую очередь, познакомимся с ним, чтобы далее не вызывал вопросов.

Важно, что числитель и знаменатель – шаблонные constexpr параметры. Это позволяет формировать тип на этапе компиляции. Этот класс вспомогательный (чисто статический, helper class), и вообще говоря, не предназначен для математических вычислений. Он нужен для эффективного перевода единиц измерений. Например, мы хотим работать с различными единицами расстояний:

Пусть миллиметр будет базовой единицей, тогда:

В конструкторе можно было производить преобразование к базовой единице. Но, правильнее только там, где это преобразование нужно. Потому что метры в миллиметры можно преобразовать не опасаясь потерь при округлении, чего нельзя сказать об обратном.

В связи с вышесказанным, только лишь для полноты примера, я привожу не самую удачную реализацию операции сложения, зато простую:

Правильно было бы получать метры при сложении метров и километров.

duration — интервал времени

Некоторые популярные интервалы уже определены в библиотеке. Типы могут немного различаться в различных реализациях

Но можно определить свои:

Теперь как с ними работать. Неявная инициализация запрещена:

В C++14 добавлены пользовательские литералы для основных единиц:

Можно складывать, вычитать и сравнивать:

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

В общем случае, неявное преобразование для целочисленных типов разрешено если отношение периодов является целым числом:

В противном случае есть 2 способа: округление и преобразование к float-типу.

Допустим, для вас избыточно представление количества секунд типом uint64_t. Ок:

Но вы все равно опасаетесь переполнения. Можно использовать класс из библиотеки для безопасной работы с числами. В стандарте такой нет (только предложение), но есть сторонние реализации. Также есть в VS, ее и используем:

Чтобы вывести значение интервала на экран или в файл, нужно использовать count():

Но не используйте count для внутренних преобразований!

time_point — момент времени

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

А если по минутной стрелке настенных часов, то те же моменты времени могут быть такими:

Тип интервала времени нам уже знаком, теперь перейдем к таймеру Clock. В библиотеке 3 таймера:

Чтобы получить интервал времени, прошедший с момента начала отсчета, можно вызвать time_since_epoch :

Преобразование time_point в число, например для сериализации или вывода на экран, можно осуществить через С-тип time_t:

Вместо заключения

Самый частый вопрос: как вывести время и дату в читаемом виде. С помощью chrono никак. Можно поиграть с time_t или использовать другую библиотеку от разработчика chrono.

Источник

Стандартное время

Время std что это. Смотреть фото Время std что это. Смотреть картинку Время std что это. Картинка про Время std что это. Фото Время std что это

Поясно́е вре́мя — время часового пояса. Из определения часового пояса следует, что поясное время имеет два значения — географическое и административное:

Содержание

Терминология

По поводу вероятного происхождения названия поясное время для официального времени в российской системе времяисчисления, цитата [3] :

Заслуга в реформе счёта времени и переходе к применяемой ныне системе, которая называется поясным временем, принадлежит канадскому железнодорожному инженеру и администратору Сэндфорду Флемингу. По-английски эта система называется Zone standard time (стандартное зонное время), сокращённо ZST.

В переводе книги — Дерек Хауз, «Гринвичское время и открытие долготы» (перевод с англ. М. И. Малышева, под редакцией В. В. Нестерова) [6] — словосочетание поясное время ставится в соответствие разным английским выражениям (некоторые из них имеют в книге и другой перевод), в зависимости от контекста, например, в главах 5 и 6:

Переводы: Standard time — поясное время и Standard time system — система поясного времени, в указанной книге встречаются значительно чаще.

История стандартизации времени

Великобритания

Северная Америка

Время std что это. Смотреть фото Время std что это. Смотреть картинку Время std что это. Картинка про Время std что это. Фото Время std что это

Первым человеком в Соединённых Штатах, который почувствовал растущую потребность в стандартизации времени, был любитель-астроном Уильям Ламберт, который в начале 1809 года представил на рассмотрение конгресса рекомендацию относительно установления в стране временных меридианов. Но эта рекомендация была отклонена, как и первоначальное предложение профессора Чарльза Дауда [en] в 1870 году. Дауд предлагал установить время на железных дорогах, связанное с четырьмя поясными меридианами с шагом 15° (или 1 час), самым восточным из которых должен быть меридиан Вашингтона. В 1872 году Дауд пересмотрел своё предложение, изменив точку отсчёта на гринвичский меридиан. Именно это его последнее предложение, почти без изменений, было использовано железными дорогами США и Канады одиннадцать лет спустя.

Поясное время в странах мира

Социальный аспект

Расхождение с местным солнечным временем

Время std что это. Смотреть фото Время std что это. Смотреть картинку Время std что это. Картинка про Время std что это. Фото Время std что это

Расхождение поясного (официального) времени в данном пункте с местным средним солнечным временем зависит от географической долготы пункта. В пункте, где официальное время имеет такое же смещение от UTC, какое имеет географический часовой пояс, в который попадает данный пункт, расхождение не превышает 30 минут. В таких пунктах средний полдень (за год и без перехода на летнее время) попадает в интервал 11:30—12:30. В фактическом часовом поясе расхождение может быть более 30 минут, поэтому средний полдень наступает в более широком интервале и, как правило, несколько смещённом в сторону опережения официального времени над средним солнечным временем. На картах часовых поясов это проявляется в виде смещения границ пояса, как правило, к западу от соответствующих меридианов географического часового пояса. Смещение границ к западу обусловлено исторически сложившейся (но необязательной) практикой применения времени восточного часового пояса на всей административной территории, если она расположена на границе географических часовых поясов.

Таким образом, расхождение официального времени с местным средним солнечным временем определяется отклонением среднего полдня от 12:00.

СССР и Россия

Поясное время во втором значении могло быть разным в одном административном часовом поясе — на некоторых территориях могло действовать время соседнего часового пояса. Кроме того, в 1930—1931 годах в СССР был установлен порядок исчисления времени «поясное время плюс один час», что фактически означало повсеместное применение времени соседнего восточного часового пояса.

Поясное время в России до 1931 года

В документах правительства страны

Административное поясное время, на момент его установления на части территории РСФСР 1 июля 1919 года, в некоторых местах опережало географическое поясное время на 2 часа. Например, в Петрограде солнечный полдень наступал около 14 часов. Поясное время на всей территории СССР было установлено в 1924 году. Принято считать, что максимальное соответствие административного и географического поясного времени в СССР было в 1925—1929 годах.

Понятие поясное время в декретах и постановлениях правительства страны не использовалось вплоть до 1931 года. Цитата из декрета от 8 февраля 1919 года (пункт 1) [15] :

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

Здесь, поясное время — это однообразное среднее время в пределах каждого пояса. Однако регионы в данном административном часовом поясе могли использовать поясное время соседнего часового пояса, что подтверждает следующая цитата из того же декрета (пункт 6):

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

То есть поясное время в СССР — это вовсе не единое (как принято считать) время в пределах официального административного часового пояса.

В последующих документах правительства по вопросу исчисления времени понятие поясное время также не используется, но встречается словосочетание время данного пояса (постановление от 15 марта 1924 года [16] ). Только в постановлении от 9 февраля 1931 года [2] появились словосочетания: исчисление поясного времени, система поясного времени (пункт 3).

В документах региональных органов власти

В постановлениях местных органов власти понятие поясное время встречается уже в 1924 году. Например, в постановлении Пермского окружного исполнительного комитета [17] в связи с введением системы часовых поясов на всей территории СССР указано:

На основании декрета СНК СССР от 15 марта с. г. о переводе часовой стрелки и о введении поясного времени и телеграммы Облисполкома № 263 — Президиум Пермского Окрисполкома постановляет:

1. В виду того, что существующий ныне в г. Перми и районах: Чусовском, Лысьвенском, Добрянском, Чёрмозском, Юговском, Сергинском, Култаевском и Мотовилихинском счёт времени совпадает с тем поясным временем, какое должно быть в Пермском округе, согласно декрета СНК от 15-го марта с. г., — часовую стрелку в г. Перми и указанных районах не переводить, оставив действующий счёт времени.

2. В районах же: Нердвинском, Сивинском, Карагайском, Красно-Верещагинском, Очёрском, Нытвенском, Оханском, Юго-Камском, Ильинском, Ленинском и Больше-Сосновском, как относящихся к другому поясу времени, — часовая стрелка в ночь с 5 на 6-е мая должна быть переведена на 1 час вперёд против действующего с 1-го мая московского времени, или, что всё равно, на 1 час назад против существующего времени в г. Перми и районах, указанных в п. 1-м настоящего обязательного постановления.

Из постановления следует, что на некоторых территориях часы в мае 1924 года не переводились, так как необходимое поясное время уже действовало к этому моменту (очевидно, что в Перми действовало время GMT+4).

В печатных изданиях

Как читатель мог уже заметить, счёт поясов идёт от Гринвича к востоку, и в каждом новом поясе время данного пояса имеет разницу с временем Гринвича на то число часов, какое число носит пояс. Так, например, время в пределах второго пояса (в который входит Москва) разнится от гринвичского времени на два часа вперёд. В пределах третьего пояса (к востоку от Мурома, Рязани, Козлова, Ростова, вплоть до Урала) отличие будет на три часа и т. д.

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

Время на железной дороге

Движение поездов производится на всей территории Союза ССР по поясному времени г. Москвы (время второго пояса). Отметки о времени на всех без исключения телеграммах, отправляемых или получаемых на территории Союза ССР, производятся по тому же времени.

Следствие терминологических особенностей

Многие населённые пункты, особенно в центре европейской части страны, расположенные восточнее граничного меридиана, в 1919 году были отнесены к соседнему западному часовому поясу. Ко 2-му часовому поясу были отнесены Архангельск, Вологда, Ярославль, Кострома, Иваново, Владимир, Москва, Рязань, Тула, Липецк, Воронеж, Ростов-на-Дону; к 3-му — Ижевск; к 8-му — Якутск. Часы в вышеперечисленных городах должны были показывать время на 1 час раньше времени географического часового пояса, который соответствовал условно принятому географическому центру этих городов.

Официальное время в этих городах и на окружающей их территории называлось поясным по номеру соответствующего административного часового пояса. Однако оно не соответствовало поясному времени в первом значении этого понятия или соответствовало, но частично. Например, на территории Москвы, пересекаемой границей географических часовых поясов, официальное время со 2 мая 1924 по 20 июня 1930 года (UTC+2) соответствовало поясному времени в первом значении для западной части города и не соответствовало — для восточной части с условно принятым географическим центром города.

Некоторые территории, расположенные западнее граничного меридиана, в 1919 году были отнесены к соседнему восточному часовому поясу. Например, к 5-му часовому поясу был отнесён Салехард, который находится в 4-м географическом часовом поясе. Время в Салехарде тоже называлось поясным, но часы в Салехарде должны были показывать время 5-го часового пояса — на 1 час позже времени «своего» географического часового пояса.

Период действия декретного времени

В 1930—1931 годах во всех регионах СССР был установлен порядок исчисления времени «поясное время плюс один час». Действующее при этом время стало впоследствии называться декретным временем. В дальнейшем практика использования в отдельных регионах времени соседнего часового пояса — как восточного, так и западного — сохранялась.

Новое понятие — местное время

Понятие местное время было введено фактически взамен понятий поясное время и декретное время. Однако оно использовалось в таком понимании [25] и до определения его в законе и также выражалось величиной смещения от всемирного координированного времени, UTC. В англоязычных странах ему также соответствует понятие standard time (стандартное время), или более близкое по лексической конструкции — local standard time (местное стандартное время).

В связи с введением нового понятия, прежнее понятие — поясное время — сохраняется в его первом (географическом) значении. Это означает, что местное время, действующее на некоторой территории и выраженное в смещении от UTC, соответствует географическому поясному времени, если место наблюдения находится в пределах географического часового пояса с тем же смещением от UTC. Другими словами, местное время соответствует географическому поясному времени только там, где средний солнечный полдень попадает в интервал 11:30—12:30 по местному времени.

Источник

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

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