Терминология времени - PullRequest
9 голосов
/ 08 июня 2011

Я немного потерян с временной терминологией.

Я понимаю, что такое эпоха и разница между GMT и UTC .

Однако я немного запуталсяо следующих обозначениях:

  • календарное время
  • местное время
  • настенное время

Как они связаны с часовыми поясами и переходом на летнее время?

PS Хорошо ссылка (спасибо @ZincX)

Ответы [ 6 ]

10 голосов
/ 08 июня 2011
  • Календарное время - это время, прошедшее с начала эпохи ( t - E ).
  • Местное время - это календарное время с поправкой на часовой пояс и летнее время.
  • Время стены: я полагаю, вы имеете в виду время настенного часа . Это время, прошедшее с момента запуска процесса или задания.

RTFM time(7), localtime(3), time(1).

3 голосов
/ 08 июня 2011

Epoch: используется для обозначения начала чего-либо. такие как Unix Epoch, которая имеет 00:00, 1 января 1970 UTC. (т.е. time_t со значением 0 представляет полночь, 1 января. 1970 UTC)

календарное время: время с эпохи

местное время: календарное время в часовом поясе, в котором вы (или компьютер) постоянно находитесь.

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

1 голос
/ 09 июня 2011

Немного придирчив, но больше нет такого понятия, как GMT. Этот термин был объявлен устаревшим почти 40 лет назад.

Существует много разных стандартов времени, среди которых UTC. Другим является UT1, который по существу является временем, измеренным солнечными часами. Еще одним является TAI, Международное атомное время (настоящая аббревиатура на французском языке, как и большинство сокращений для различных стандартов времени). TAI, как следует из названия, - это время, измеряемое атомными часами. UTC - это компромисс между TAI и UT1. Мы хотим, чтобы наша шкала времени была более или менее синхронизирована с солнцем, но мы также хотим, чтобы она основывалась на лучшем определении на секунду. Между этими двумя желаниями существует напряжение, потому что Земля не вращается с постоянной скоростью.

В долгосрочной перспективе из-за приливов скорость вращения Земли замедляется. Длина дня была значительно короче пару миллиардов лет назад. Это было немного короче пару сотен лет назад. Наш день продолжительностью 86 400 секунд основан на длине солнечного дня от пары сотен лет назад . Сегодня солнечный день длится около 86 400,002 секунд, поэтому нам приходится добавлять дополнительные секунды, чтобы полночь оставалась более или менее полночной.

Что касается конкретных заданных вами вопросов,

  • Сейчас 8 июня 2011 года в 16:25 CDT. Это календарное время. Вот проблема: сколько секунд прошло между 12:42 EST 3 января 1999 года и 16:25 CDT 8 июня 2011 года? Это похоже на просьбу кого-то сделать арифметику римскими цифрами. Yech.

  • Местное время: 16:25 CDT и 12:42 EST - примеры местного времени. Для меня полночь - полдень для кого-то на полпути.

  • Время на стене (лучше: время на настенных часах): предположим, что вы запустили программу, и для ее завершения требуется 20 минут. Эти 20 минут - время настенных часов, которое потребовалось программе для запуска в этот раз. Когда я вижу, что какая-то программа запускается намного дольше, чем ожидалось, я проверяю, не стала ли моя глупая антивирусная программа вирусной. Часто это именно то, что происходит. После того, как антивирусная программа ударила в штаны, выполнение той же самой программы может занять всего пять минут времени настенных часов. Время ЦП, с другой стороны, будет примерно одинаковым в течение двух запусков.

1 голос
/ 08 июня 2011

Также посмотрите на этот вопрос, чтобы получить хорошее объяснение календарного и местного времени с примерами кода, написанными на C:

Как использовать функции даты и времени C в UNIX?

1 голос
/ 08 июня 2011

Календарное время - это время с начала эпохи.Это может быть представлено несколькими способами, включая:

  1. простое календарное время: количество секунд с начала эпохи
  2. календарное время с высоким разрешением: для включения дробей используется тип данных struct timevalсекунд.

Местное время : это также структура (тип данных struct tm), которая включает в себя календарное время, а также информацию о часовом поясе и летнем времени.Это дает всю информацию для представления строки времени, понятной в определенной локали.

Время стены : время, прошедшее во время выполнения вашего процесса.

Я рекомендую прочитатьинформация на эта ссылка .Это помогло мне.

1 голос
/ 08 июня 2011

Попробуйте info, а затем * Date input formats: (coreutils)Date input formats., который начинается с этого замечательного текста:

Наши единицы измерения времени, от секунд до месяцев, настолько сложны, асимметричны и дизъюнктивны, чтосделать последовательный умственный расчет во времени почти невозможным.В самом деле, если бы какой-то тиранический бог придумал поработить наши умы во времени, чтобы нам было почти невозможно избежать подчинения грязным рутинам и неприятным сюрпризам, он вряд ли мог бы сделать лучше, чем сдать нашу нынешнюю систему.Это как набор трапециевидных строительных блоков без вертикальных или горизонтальных поверхностей, как язык, в котором простейшая мысль требует витиеватых конструкций, бесполезных частиц и длинных окружений.В отличие от более успешных моделей языка и науки, которые позволяют нам смело или, по крайней мере, уравновешенно воспринимать опыт, наша система временных расчетов молча и настойчиво поощряет наш ужас времени.

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

- Роберт Грудин, «Время и искусство жизни».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...