Linux часы с секундами

Linux часы с секундами

В этом документе описано, как вы можете установить ваши часы в Линуксе, как установить временную зону (timezone) и другую связанную с этим информацию.

В вашем компьютере есть две разновидности часов: имеющие независимое питание и всегда запущенные (их называют по разному: «аппаратные» («hardware»), «BIOS», или «CMOS»-часы), и другие, которые определяются операционной системой, запущенной на вашем компьютере («системные» часы). Аппаратные часы в основном используются для установки системного времени в момент загрузки ОС, и с этого момента до момента перезагрузки ОС или выключения питания компьютера для определения времени будут использоваться системные часы.

В Линуксе вы имеете выбор: установить в аппаратных часах всемирное время (UTC/GMT) или локальное время (local time). Наилучший вариант — установить всемирное время (UTC), что позволит автоматически учитывать переход на зимнее/летнее время. Единственное неудобство от установки всемирного времени в аппаратных часах — это в случае использования на этом же компьютере другой ОС (в случае использования dual boot), которая считает, что аппаратные часы установленны в локальное время, поэтому время в этой систему будет неверным.

Установка временной зоны (timezone)

Временная зона под Линуксом устанавливается через символическую ссылку, из /etc/localtime на файл из дирректории /usr/lib/zoneinfo (или /usr/share/zoneinfo ), чем указывается, в какой временной зоне вы находитесь. Например, я живу в Новгороде (Московский часовой пояс), я должен сделать ссылку /etc/localtime на файл /usr/lib/zoneinfo/Europe/Moscow . Для этого даем команду:

ln -sf ../usr/share/zoneinfo/your/zone /etc/localtime

Замените your/zone на соответствующую вашему месту расположения зону, например Europe/Moscow или Australia/Perth . Чтобы узнать какие временные зоны доступны, посмотрите в дирректорию /usr/lib/zoneinfo (или /usr/share/zoneinfo ).

Установка всемирного или локального времени

Когда линукс загружен, один из скриптов инициализации запускает программу /sbin/clock (или /sbin/hwclock в RedHat’e) чтобы установить системные часы в соответствии с аппаратными часами. clock считает, что аппаратные часы установленны на локальное время, чтобы указать что используется всемирное время используют ключ -u . Далее для RedHat Линукса надо в скрипте /etc/sysconfig/clock установить переменную « UTC » в значение «UTC=true» или «UTC=false». Для случая Debian’a это переменная « GMT »в файле /etc/init.d/boot, а значения ее : «GMT=»-u» » в случае использования всемирного времени и или «GMT=»» » в случае использования локального времени

Установка системных часов

Для установки системных часов в Линуксе используется программа date . Для примера — чтобы установить текущее время (системное!) и дату на 31 июля, 23:16, наберите « date 07312316 » (обратите внимание, что время дано в 24-часовой записи). Если вы хотите изменить год, то наберите « date 073123161998 ». Для установки секунд набирите « date 07312316.30 » или « date 073123161998.30 ». Чтобы узнать системное время, запустите date без аргументов.

Установка аппаратных часов

Для установки аппаратных часов, установите сначала системное время, а потом уже аппаратное, используя программу « /sbin/clock -w » (или« /sbin/clock -wu » в случае использования всемирного времени). Чтобы узнать аппаратное время, запустите clock без параметров. Если аппаратные часы установлены в локальное время, а вы хотите увидеть всемирное, наберите « /sbin/clock -u »

В некоторых приложениях время показывается неверно

Если какое-то приложение (такое как date ) показывает верное время, но остальные — нет, то вы наверно неправильно установили информацию о временной зоне. Чтобы исправить ситуацию, просто создайте правильную ссылку на нужную временную зону.

  • /etc/init.d/boot (/etc/sysconfig/clock) устанавливает локальное или всемирное время
Читайте также:  Создание раздела recovery windows

Символическая ссылка /etc/localtime на /usr/lib/zoneinfo/. используется для установки временной зоны.

Запуск « date MMDDhhmm » для установки текущего системного времени

Запустите « /sbin/clock -w [-u] » для установки аппаратных часов

Небольшое замечание

Ядро Linux’а всегда хранит и вычисляет врямя как число секунд прошедших с полночи 1-го января 1970 года, в независимости от того, установлены ваши часы на локальное или всемирное время. Преобразование в локальное время производится в процессе запроса.

Поскольку колличество секунд с 1-го января 1970 года всемирного времени сохраняется как знаковое 32-битное целое (это справедливо для Linux/Intel систем), ваши часы перестанут работать где-то в 2038 году. Linux не имеет проблеммы 2000-го года, но имеет проблему 2038 года. К счастью, к тому времени все linux’ы будут запущены на 64-х разрядных системах. 64-х битное целое будет содержать наши часы приблизительно до 292271-миллионного года.

Обратите внимание на другие программы

  • rdate — получает текущее время на удаленной машине; может быть использована для установки системного времени.

xntpd — похожа на rdate , но она более аккуратна и вы должны иметь постоянное сетевое соединение. xntpd запускается на продолжительный срок и следит за сетевыми задержками и «уходом» часов, для работы с ней используется программа ( ntpdate ), устанавливающая текущее время точно так же, как это делает rdate.

Источник

Как отобразить дату и время с помощью командной строки Linux

В этом руководстве мы покажем вам, как печатать дату и время с использованием командной строки Linux в различных форматах.

Как отобразить дату и время

Вы, возможно, догадались, что команда отображает дату и время, используя командную строку Linux. Это довольно просто:

По умолчанию вывод будет примерно таким:

Вы можете получить дату для отображения любого или всех следующих элементов:

  • % a – сокращенное название дня (т.е. понедельник, вторник, среда)
  • % A – полное имя дня (т.е. понедельник, вторник, среда)
  • % b или% h – сокращенное название месяца (т.е. январь, февраль, март)
  • % B – полное название месяца (январь, февраль, март)
  • % c – локализует дату и время (полная дата и время)
  • % C – короткий год (т.е. 14, 15, 16)
  • % d – день месяца (т.е. 01, 02, 03)
  • % D – так же, как M/D/Y (т.е. 20.04.16)
  • % e – день дополнения месяца (т. е. «1», «2»)
  • % F – полная дата, аналогично гггг-мм-дд
  • % H – час (00, 01, 02, 21, 22, 23)
  • % I – час (1,2,3,10,11,12)
  • % j – день года (то есть 243)
  • % k – добавленный час (то есть «1» становится «1»)
  • % l – подкачка часов (12 часов)
  • % m – номер месяца (1,2,3)
  • % M – минута (1,2,3,57,58,59)
  • % n – новая строка
  • % N – наносекунды
  • % p – AM или PM
  • % P – как% p, но в нижнем регистре (как ни странно)
  • % r – 12 часов в часах
  • % R – 24-часовая версия часа и минуты
  • % s – секунды с 1970-01-01 00:00:00
  • % S – второй (01,02,03, 57, 58, 59)
  • % t – вкладка
  • % T – время такое же, как% H:% M:% S
  • % u – день недели (1 – понедельник, 2 – вторник и т. д.)
  • % U – номер недели в году (при условии, что воскресенье является первым днем ​​недели)
  • % V – номер недели ISO с понедельником в качестве первого дня недели
  • % w – день недели (0 – воскресенье)
  • % W – номер недели в году с понедельником в качестве первого дня недели
  • % x – представление даты локали (31.12.2015)
  • % X – представление времени в локалях (14:44:44)
  • % y – последние две цифры года
  • % Y – год
  • % z – числовой часовой пояс (т.е. -0400)
  • %: z – числовой часовой пояс следующим образом (т.е. -04: 00)
  • % :: z – числовой часовой пояс следующим образом (т.е. -04: 00: 00)
  • % Z – буквенное сокращение часового пояса (GMT)
  • – – один дефис предотвращает заполнение нулями
  • _ – одиночные знаки подчеркивания с пробелами
  • 0 – колодки с нулями
  • ^ – используйте заглавные буквы, если это возможно
  • # – используйте противоположный случай, если это возможно

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

Читайте также:  Installing linux step by step

По сути, если вы хотите отобразить только время, вы можете использовать следующее:

Это выведет 19:45:00. (то есть часы, минуты, затем секунды)

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

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

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

Как показать дату UTC

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

Если вы находитесь в Великобритании, вы заметите, что вместо того, чтобы показывать «18:58:20» как время, будет показано «17:58:20» как время.

Как показать дату RFC

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

Это отображает дату в следующем формате:

Это полезно, поскольку показывает, что вы на час опережаете время по Гринвичу.

Некоторые полезные команды даты

Хотите узнать дату следующего понедельника? Попробуйте это:

В момент написания возвращается «Пн 25 Апр 00:00:00 BST 2016»

-D в основном печатает дату в будущем.

Используя ту же команду, вы можете узнать, в какой день недели ваш день рождения или Рождество.

Результат – Солнце 25 декабря.

Резюме

Стоит проверить страницу руководства для команды date с помощью следующей команды:

Источник

Unix time конвертер (Конвертер времени Unix онлайн)

Что такое Unix время или Unix эпоха (Unix epoch или Unix time или POSIX time или Unix timestamp) ?

UNIX-время или POSIX-время (англ. Unix time) — способ кодирования времени, принятый в UNIX и других POSIX-совместимых операционных системах.
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют «эрой UNIX» (англ. Unix Epoch).
Время UNIX согласуется с UTC, в частности, при объявлении високосных секунд UTC соответствующие номера секунд повторяются.
Способ хранения времени в виде количества секунд очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобочитаемый формат. Дата и время в этом формате также занимают очень мало места (4 или 8 байтов, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. Недостатки в производительности могут проявиться при очень частом обращении к элементам даты, вроде номера месяца и т. п. Но в большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей.

Обычная дата(Human readable time) Секунды
1 минута 60 секунд
1 час 3600 секунд
1 день 86400 секунд
1 неделя 604800 секунд
1 месяц (30.44 дней) 2629743 секунд
1 год (365.24 дней) 31556926 секунд

Конвертивание эпохи Unix в человекопонятную дату(human readable date)

Unix дата начала и конца года, месяца или дня

Перевод секунд в дни, часы и минуты

Как получить Unix время в.

Perl time
PHP time()
Ruby Time.now (или Time.new ). Чтобы вывести: Time.now.to_i
Python import time сначала, потом time.time()
Java long epoch = System.currentTimeMillis()/1000;
Microsoft .NET C# epoch = (DateTime.Now.ToUniversalTime().Ticks — 621355968000000000) / 10000000;
VBScript/ASP DateDiff(«s», «01/01/1970 00:00:00», Now())
Erlang calendar:datetime_to_gregorian_seconds(calendar:now_to_universal_time( now()))-719528*24*3600.
MySQL SELECT unix_timestamp(now())
PostgreSQL SELECT extract(epoch FROM now());
SQL Server SELECT DATEDIFF(s, ‘1970-01-01 00:00:00’, GETUTCDATE())
JavaScript Math.round(new Date().getTime()/1000.0) getTime() возвращает время в миллисекундах.
Unix/Linux date +%s
Другие OS Командная строка: perl -e «print time» (Если Perl установлен на вашей системе)

Конвертирование даты в Unix время в.

PHP mktime(часы, минуты, секунды, месяц, день, год)
Ruby Time.local(год, месяц, день, часы, минуты, секунды, usec ) (или Time.gm для GMT/UTC вывода). Чтобы вывести добавьте .to_i
Python import time сначала, потом int(time.mktime(time.strptime(‘2000-01-01 12:34:00’, ‘%Y-%m-%d %H:%M:%S’)))
Java long epoch = new java.text.SimpleDateFormat («dd/MM/yyyy HH:mm:ss»).parse(«01/01/1970 01:00:00»);
VBScript/ASP DateDiff(«s», «01/01/1970 00:00:00», поле даты)
MySQL SELECT unix_timestamp(время) Формат времени: YYYY-MM-DD HH:MM:SS или YYMMDD или YYYYMMDD
PostgreSQL SELECT extract(epoch FROM date(‘2000-01-01 12:34’));
С timestamp: SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE ‘2001-02-16 20:38:40-08’); C интервалом: SELECT EXTRACT(EPOCH FROM INTERVAL ‘5 days 3 hours’);
SQL Server SELECT DATEDIFF(s, ‘1970-01-01 00:00:00’, поле с датой)
Unix/Linux date +%s -d»Jan 1, 1980 00:00:01″
Читайте также:  Linux with windows theme

Конвертирование Unix времеми в понятную дату(human readable date).

PHP date(Формат, unix время);
Ruby Time.at(unix время)
Python import time сначала, потом time.strftime(«%a, %d %b %Y %H:%M:%S +0000», time.localtime(unix время)) Замените time.localtime на time.gmtime для GMT даты.
Java String date = new java.text.SimpleDateFormat(«dd/MM/yyyy HH:mm:ss»).format(new java.util.Date (unix время*1000));
VBScript/ASP DateAdd(«s», unix время, «01/01/1970 00:00:00»)
PostgreSQL SELECT TIMESTAMP WITH TIME ZONE ‘epoch’ + unix время * INTERVAL ‘1 second’;
MySQL from_unixtime(unix время, не обязательно, выходной формат) Стандартный формат выхода YYY-MM-DD HH:MM:SS
SQL Server DATEADD(s, unix время, ‘1970-01-01 00:00:00’)
Microsoft Excel =(A1 / 86400) + 25569 Результат будет в GMT зоне времени. Для других временных зон: =((A1 +/- разница аремени для зоны) / 86400) + 25569.
Linux date -d @1190000000
Другие OS Командная строка: perl -e «print scalar(localtime(unix время))» (Если установлен Perl) Замените ‘localtime’ на ‘gmtime’ для GMT/UTC зоны времени.

Для чего нужен инструмент «Unixtime конвертер»?

Данный инструмент, в первую очередь, будет полезен веб-мастерам, которые постоянно имеют дело с большими объемами дат или часто в своей работе обращаются к их элементам. С помощью инструмента «Unixtime конвертер» можно легко конвертировать Unix время в понятную для пользователя дату (и наоборот), узнать текущее Unix epoch время, а также получить Unix время в различных языках программирования, СУБД и операционных системах.

Что такое Unix время?

Эра Unix (Unix epoch) началась в ночь с 31 декабря 1969 года на 1 января 1970 года. Именно эту дату взяли за точку отсчета «компьютерного» времени, которое исчисляется в секундах и занимает очень мало места на диске – всего 4 или 8 байт. С помощью такого способа кодирования программисты могут «спрятать» любую дату в одно число, и легко конвертировать его обратно в понятный пользователям формат.

Unix время (еще его называют Unix time или POSIX time) удобно использовать в различных операционных системах и языках программирования, так как оно отображается в виде одной величины, а не определенного количества полей, занимающих место. К тому же, UNIX time полностью соответствует стандарту UTC (в том числе и в високосных годах) – в таком случае соответствующие значения секунд просто повторяются.

Пару слов о терминах.

Итак, Unix-временем (или POSIX-временем) считается количество секунд, которые прошли с полуночи 1 января 1970 года до настоящего времени.

Unix Timestamp (временная метка) – это «зафиксированное» время, иными словами – конкретная дата, запечатленная в числе.

UTC (Universal Coordinated Time) – это Всемирное координированное время, которое «фиксируется» на нулевом меридиане, и от которого ведется отсчет географических часовых поясов.

Насколько «долговечна» данная система?

Всего лишь через пару десятков лет, а именно 19 января 2038 года в 03:14:08 по UTC Unix time достигнет значения 2147483648, и компьютерные системы могут интерпретировать это число как отрицательное. Ключ к решению данной проблемы лежит в использовании 64-битной (вместо 32-битной) переменной для хранения времени. В таком случае, запаса числовых значений Unix time хватит человечеству еще на 292 миллиарда лет. Неплохо, правда?

Unix время – одно для всех

Если вы живете в Лондоне или Сан-Франциско, а ваши друзья – в Москве, то «сверить часы» можно по Unix time: эта система в данный момент времени едина для всего мира. Естественно, если время на серверах выставлено правильно. А с помощью инструмента «Unixtime конвертер» такая конвертация займет у вас доли секунды.

Источник

Оцените статью