The UNIX and Linux Forums  
Здравствуйте и добро от Соединенных Штатов UNIX и Linux Форумы! Благодарим Вас за посещение и вступления нашей мирового сообщества.

Go Back   В UNIX и Linux Форумы > Топ форумы > UNIX для чайников Вопросы И Ответы > Ответы на часто задаваемые вопросы > Советы и руководства
.
Google unix.com



Советы и руководства Полезные статьи от наших пользователей.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
Понимание этого Makefile the_learner Программирования высокого уровня 5 06-14-2007 01:55 AM
Need Help понимании Unix Командная chris86 UNIX для чайников Вопросы И Ответы 6 10-10-2006 03:35 PM
Немного помочь пониманию FIFOs? deckard Linux 0 11-01-2005 01:46 PM
необходимость дальнейшего понимания init.d jigarlakhani UNIX перспективных И опытных пользователей 1 09-20-2002 03:11 PM

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 02-20-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Регистрация: август 2001
Место проведения: Ashburn, Вирджиния
Сообщения: 9111
Понимание Unix-часового

Внутренний Время
Внутри, в системе Unix поддерживает время как количество секунд с момента Unix эпохи. В Unix эпохи была в полночь 1 января 1970 UTC. В Восточно-часовой из США, которая была 31 декабря, 1969 в 19:00. Как я начала эту статью, то время 1171733878. Я использую NTP (Network Time Protocol) держать моего компьютера в синхронизации часов. Так на точное мгновение, что мой компьютер считает 1171733878, вероятно, так же как ваша. Каждый компьютер должен быть в согласии, в какой момент он является. Неважно, в которых часовой компьютер проживает или часовой пояс, в котором вы проживаете. Если бы у меня был записан в файл, что во втором, Unix бы зафиксировала изменение времени как 1171733878.

Unix времени традиционно подписанного 32 битное целое. Это означает, что максимальное время 2147483647, который, в Восточной часовой в США будет 18 января 2038 в 22:14:07. Этот план является для этого расширить до 64-битное целое до этого. Unix секунд рассчитывать вперед по одному. После 1171733878, следующий во-вторых, что моя система будет знать это 1171733879. После того, как она syncronized, NTP работ укорочение или удлинение второй. Я могу получить время вызвав системный вызов времени (). Если я хочу что-нибудь лучше, чем секунд, следующий наиболее точный интерфейс системных вызовов раза (). раз () основная цель состоит в том, чтобы получить структуру данных, относящихся к использованию системы. Но возвращение код также полезен ... это время в часах клещей. Часы клещей начинается в некоторый произвольный момент в прошлом (часто загрузке), и они заранее, когда ядро работает обычным часам. Сколько часов клещей в секунду может изменяться. Вы можете позвонить sysconf (_SC_CLK_TCK), чтобы узнать вашу ценность. 100 общей стоимостью в эти дни. Пожилые систем, используемых 60. 100 и 60 являются только два значения, я видел. Часы клещей, также вернулись в подписало целое. Поэтому примерно через год, то число будет откатить до нуля. Помимо опрокидывания, часы клещей также заранее по одному. (Часы клещей, часто называемый "jiffies" на Linux людей.) Существует также еще один системный вызов, gettimeofday (), которая возвращает время с Unix эпохи в секундах и микросекунд. gettimeofday () должен существовать и использовать микросекундной точностью. Однако точность четко определен. В микросекунд не заранее по одному в любой системе, которые я видел. Я предполагаю, что Unix систем достаточно хорошим с hundreths из второго и, возможно, даже миллисекунд некоторых случаях. Но я бы не предположить какой-либо точностью за что.

Права Читаемые ВременнЫе
Теперь, когда мы знаем, как Unix хранит времени, давайте перейдем к другому вопросу: как отображение времени для пользователя. Немногие пользователи будут довольны а времени будет отображаться как 1171733878. Поскольку я в Восточной часовой из США, я хотел бы увидеть что-то типа 12:37:58 по 17 февраля, 2007. Но один человек в Лос-Анджелесе, штат Калифорния хотели нечто вроде 9:37:58 от 17 февраля 2007. Я написал несколько Perl скрипт для отображения отформатированная когда присваивается номер, как 1171733878. Вот выход, как она должна появиться в восточной части Тихого океана и часовые пояса на несколько тщательно отобранных времени:
Восточная:
1173596399 Sun 2007-03-11 01:59:59 поясному времени
1173596400 Sun 2007-03-11 03:00:00 летнее время
1173607199 Sun 2007-03-11 05:59:59 летнее время
1173607200 Sun 2007-03-11 06:00:00 летнее время
Тихоокеанский регион:
1173596399 СБ 2007-03-10 22:59:59 поясному времени
1173596400 СБ 2007-03-10 23:00:00 поясному времени
1173607199 Sun 2007-03-11 01:59:59 поясному времени
1173607200 Sun 2007-03-11 03:00:00 летнее время
Обратите внимание, что внутренние Unix временем не меняется с начала летнее время. Что происходит, заключается в том, что новое правило о том, как для отображения времени в силу. Для того чтобы преобразовать внутренние времени к времени, Unix нужно знать, какие часовой использовать. И он должен знать, если летнее находится в силе. Существуют различные подпрограммы, которые могут быть привлечены к форматирования времени. Все это в конечном итоге к tzset (), чтобы установить часовой пояс и состояние летнее. И tzset всегда проверяет переменную окружения TZ, чтобы выяснить, что пользователь хочет. Если вы не в переменной окружения TZ, tzset () будет идти с определенной дефолта, который может отличаться от системы к системе. В TZ переменная среды часто что-то, как EST5EDT4 который является то, что я использую. Это говорит о том, что я в часовой призвал EST которой смещение от всемирного времени на 5 часов и в летнее дней мой часовой называется EDT которых компенсируется из Всеобщей Время 4 часа. Чтобы узнать, когда на летнее является по сути дела, tzset будет заглянуть в некоторые данные файла. Какой файл (и то, что формат файла, в) варьируется от системы к системе. В патчи, которые доступны в этом году изменения в летнее должна быть действительно немного больше, чем некоторые изменения в эти файлы.

Всемирное время
В дополнение к знанию о своем часовой, а Unix система должна иметь возможность использования универсального всемирного времени (а это почти то же самое, что старые Гринвичу). Это то, что "дата-U" делает. Определение универсального времени хорошо известны и не связаны летнее изменения. Всеобщая Время определения могут построить на сегодняшний день стандартные, а не с помощью файла данных для tzset (). Это может быть правдой, даже если запись присутствует на UTC. Почта программ часто используют UTC времени.
 

Закладки

Теги
часы, mtime, часового

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

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

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 02:02 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0