- Команда Linux, чтобы получить время в миллисекундах
- Команда Date в Linux с примерами
- Linux Date Command with Examples
- В этом руководстве мы рассмотрим основы date команды.
- Использование Date
- Параметры форматирования даты
- Пользовательское форматирование даты
- Переопределить часовой пояс
- Конвертер эпох
- Использование date с другими командами
- Показать время последнего изменения файла
- Установите системное время и дату
- Вывод
- ⏲️ 8 примеров команды date на Linux
- Базовый синтаксиc
- 1) Команда date без параметров
- 2) Отображение даты и времени в формате UTC
- 3) Отображение определенной даты в строковом формате
- 4) Использование команды date, чтобы проверить прошлые даты
- 5) Использование команды date, чтобы проверить будущие даты
- 6) Параметры форматирования даты
- 7) Как установить дату и время
- 8) Использование команды Date в переменной
- Заключение
- Unix time конвертер (Конвертер времени Unix онлайн)
Команда Linux, чтобы получить время в миллисекундах
Есть ли команда оболочки в Linux, чтобы получить время в миллисекундах?
date +%s возвращает число секунд с эпохи.
date +%s%N возвращает количество секунд + текущие наносекунды.
Следовательно, echo $(($(date +%s%N)/1000000)) – это то, что вам нужно
date +»%T.%N» возвращает текущее время с наносекундами.
date +»%T.%6N» возвращает текущее время с наносекундами, округленными до первых 6 цифр, что составляет микросекунды.
date +»%T.%3N» возвращает текущее время с наносекундами, округленными до первых трех цифр, что составляет миллисекунды.
В общем, каждому полю формата команды date может быть задана дополнительная ширина поля.
nano составляет 10 -9 и милли 10 -3 . Следовательно, мы можем использовать 3 первых символа наносекунд, чтобы получить милли:
% N наносекунды (000000000..999999999)
% s секунд с 1970-01-01 00:00:00 UTC
В OS X, где date не поддерживает флаг %N , я рекомендую установить coreutils с помощью homebrew.
Это даст вам доступ к команде под названием gdate , которая будет вести себя как date в системах Linux.
Для более “родного” опыта вы всегда можете добавить это в свой .bash_aliases
Другие ответы, вероятно, достаточны в большинстве случаев, но я думал, что добавлю свои 2 цента, когда столкнулся с проблемой в системе busybox.
Данная система не поддерживает формат формата %N и не имеет интерпретатора python или perl .
После большой царапины головы мы (спасибо Дейву!) пришли к следующему:
Он извлекает секунды и микросекунды с выхода adjtimex (обычно используется для установки параметров для системных часов) и печатает их без новых строк (чтобы они склеивались). Обратите внимание, что поле микросекунд должно быть предварительно заполнено нулями, но это никак не влияет на поле секунд, которое больше 6 цифр. Из этого следует тривиально преобразовать микросекунды в миллисекунды.
Если вам нужна новая новая строка (возможно, потому, что она выглядит лучше), попробуйте
Также обратите внимание, что для этого требуется adjtimex и awk . Если нет, то с помощью busybox вы можете указать их локально с помощью
И затем вызовите вышеуказанное как
Или, конечно, вы можете поместить их в свой PATH
Вышеописанное работает на моем устройстве busybox. На Ubuntu я попробовал то же самое и понял, что adjtimex имеет разные версии. На Ubuntu это работало для вывода времени в секундах с десятичными знаками на микросекунды (включая завершающую новую строку)
Я бы этого не сделал на Ubuntu. Я бы использовал date +%s%N
date команда не выдавала миллисекунды на OS X, поэтому использовала псевдоним из python
python script следующим образом:
Просто хотел добавить к @Alper ответ, что я должен был сделать, чтобы заставить этот материал работать:
На Mac вам понадобится brew install coreutils , чтобы мы могли использовать gdate . В противном случае в Linux это просто date . И эта функция поможет вам командам времени без создания временных файлов или чего-либо:
И вы можете использовать его со строкой timeit ‘tsc —noEmit’
Источник
Команда Date в Linux с примерами
Linux Date Command with Examples
В этом руководстве мы рассмотрим основы date команды.
Команда date отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в разных форматах и для расчета будущих и прошлых дат.
Использование Date
Синтаксис date команды следующий:
Выходные данные включают день недели, месяц, день месяца, время, часовой пояс и год:
Параметры форматирования даты
Вывод date команды может быть отформатирован с помощью последовательности символов управления форматом, перед которой стоит + знак. Элементы управления форматом начинаются с % символа и заменяются их значениями.
Символ %Y будет заменен на год, %m месяц и %d день месяца:
Вот еще один пример:
Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:
- %a — Сокращенное название дня недели (например, понедельник)
- %A — Сокращенное полное название дня недели (например, понедельник)
- %b — Сокращенное название месяца (например, январь).
- %B — сокращенное длинное название месяца (например, январь)
- %d — день месяца (например, 01)
- %H — час (00..23)
- %I — час (01.12.12)
- %j — День года (001..366)
- %m — Месяц (01.12.12)
- %M — Минута (00..59)
- %S — Второй (00 .. 60)
- %u — день недели (1..7)
- %Y — Полный год (например, 2019)
Чтобы получить полный список всех параметров форматирования, запустите date —help или man date в своем терминале.
Пользовательское форматирование даты
-d Опция позволяет работать на дату конкретного. Вы можете указать дату в виде удобочитаемой строки даты, как показано ниже:
Использование пользовательского форматирования:
Строка даты принимает значения, такие как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя» .. и т. Д.
Вы также можете использовать параметр строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время 6:30 утра следующего понедельника на восточном побережье Австралии, введите:
Переопределить часовой пояс
Команда date возвращает дату в системном часовом поясе по умолчанию . Чтобы использовать другой часовой пояс, установите переменную среды TZ в желаемый часовой пояс.
Например, чтобы показать время в Мельбурне, введите:
Чтобы получить список всех доступных часовых поясов , вы можете либо перечислить файлы в /usr/share/zoneinfo каталоге, либо использовать timedatectl list-timezones команду.
Конвертер эпох
date Команда может быть использована в качестве преобразователя Epoch. Время, или метки времени Unix, — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.
Чтобы напечатать количество секунд от эпохи до текущего дня, вызовите date с %s контролем формата:
Чтобы преобразовать секунды с начала эпохи в дату, установите секунды в виде строки даты с префиксом @ :
Использование date с другими командами
Команда date чаще всего используется для создания имен файлов, которые содержат текущее время и дату.
Команда ниже создаст файл резервной копии Mysql в следующем формате database_name-20190601.sql
Вы также можете использовать date команду в своих сценариях оболочки. В приведенном ниже примере мы присваиваем выход date к date_now переменной:
Показать время последнего изменения файла
Команда date с -r параметром показывает время последнего изменения файла. Например:
Если вы хотите изменить временную метку файла, используйте touch команду .
Установите системное время и дату
Установка системного времени и даты вручную с помощью этой date команды не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с ntp помощью systemd-timesyncd служб или .
Однако, если вы хотите установить системные часы вручную, вы можете использовать эту —set= опцию. Например, если вы хотите установить дату и время 17:30, 01 июня 2019 г., введите:
Вывод
Команда Linux date отображает или устанавливает системную дату и время.
Источник
⏲️ 8 примеров команды date на Linux
Базовый синтаксиc
Базовый синтаксис команды date представлен ниже:
1) Команда date без параметров
2) Отображение даты и времени в формате UTC
Чтобы отобразить время в формате UTC (всемирное координированное время), ранее называвшееся GMT (среднее время по Гринвичу), добавьте параметр -u.
3) Отображение определенной даты в строковом формате
4) Использование команды date, чтобы проверить прошлые даты
Команда date также может выводить дату и время в прошлом относительно вашей текущей даты.
Например, чтобы проверить дату 9 дней назад, выполните команду.
5) Использование команды date, чтобы проверить будущие даты
Так же, как вы можете проверять прошлые даты, команда date также позволяет отображать будущие даты.
Например, чтобы узнать дату завтрашнего дня:
6) Параметры форматирования даты
- %D – Отображение даты в формате мм / дд / гг
- %Y – Год (например, 2021 г.)
- %m – Месяц (01-12)
- %B – Название месяца в формате полной строки (например, February)
- %b –Название месяца в сокращенном строковом формате (например, Feb).
- %d – День месяца (например, 01)
- %j – День года (001-366)
- %u – День недели (1-7)
- %A –День недели в формате полной строки (например, Friday)
- %a – День недели в сокращенном формате (например, Fri)
- %H – Час (00-23)
- %I – Час (01-12)
- %M – Mинута (00-59)
- %S – Секунда (00-60)
Синтаксис использования опции date довольно прост:
Чтобы вывести день недели, месяц, год и текущее время:
7) Как установить дату и время
Команда date также позволяет вам установить дату и время.
Например, чтобы установить дату и время на 25 июня 2021 года в 11:15, выполните команду:
Такой способ установки даты и времени в системе не рекомендуется, поскольку время, скорее всего, будет неточным.
Лучший способ добиться этого – использовать утилиту chrony, которая является заменой устаревшего демона ntpd.
Фактически, современные системы, такие как CentOS 8/RHEL 8, не поддерживают NTP.
У нас есть подробное руководство о том, как синхронизировать время и дату с помощью chrony.
Если вы хотите изменить часовой пояс, используйте команду timedatectl, пример показан ниже.
8) Использование команды Date в переменной
Заключение
Мы надеемся, что пролили свет на использование команды date на Linux, и надеемся, что вы сможете использовать ее для отображения даты в системе и настройки вывода по своему усмотрению.
Источник
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″ |
Конвертирование 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 конвертер» такая конвертация займет у вас доли секунды.
Источник