В этой главе мы познакомим вас с обработкой времени и даты на языке Perl.
В Perl есть несколько функций для обработки времени:
1. Функция time(): возвращает накопленное количество секунд с 1 января 1970 года.
2. Функция localtime(): получение времени местного часового пояса.
3. Функция gmtime(): получение среднего времени по Гринвичу.
Далее давайте посмотрим на функцию localtime() , которая возвращает текущее время и дату без аргументов.
Следующие 9 символов обозначают различные параметры времени и даты:
сек, # секунды, от 0 до 61 минуты, # минуты, от 0 до 59 часов, # часы, от 0 до 24 дней, # дней, от 1 до 31 месяца, # месяцев, от 0 до 11 лет, # лет, начиная с 1900 дня, # дня недели , 0-6,0 означает воскресенье, # день года, 0-364,365isdst # True, если действует летнее время
Пример демонстрации выглядит следующим образом:
Результат выполнения приведенного выше примера:
Воскресенье, 12 июня
Если localtime() вызывается напрямую, он возвращает время текущего часового пояса системы. Пример следующий:
Результат выполнения приведенного выше примера:
Дата и время: воскресенье, 12 июня, 11:27:31, 2016 г.
Функция gmtime() аналогична localtime(), но возвращает стандартное время по Гринвичу.
Результат выполнения приведенного выше примера:
Местное время и дата: воскресенье, 12 июня 11:32:14 2016 г. Время и дата: воскресенье, 12 июня 03:32:14 2016 г.
Из примера видно, что время в Китае на 8 часов отличается от среднего времени по Гринвичу.
Мы можем использовать 9 элементов времени функции localtime() для вывода формата времени, который необходимо сформулировать. Форматированный вывод использует функцию printf():
Результат выполнения приведенного выше примера:
Время форматирования: ЧЧ:ММ:СС11:35:23
Мы можем получить время эпохи, используя функцию time(), которая возвращает количество секунд с 1 января 1970 года. Примеры следующие:
Результат выполнения приведенного выше примера:
Количество секунд, накопленных с 1 января 1970 года, составляет: 1465702883.
Мы можем вывести нужный формат времени:
Результат выполнения приведенного выше примера:
Текущее время и дата: 15.03.2017 12:47:54 Вчерашнее время и дата: 14.03.2017 12:47:54
Функция strftime() может форматировать время в нужный нам формат.
В следующей таблице перечислены некоторые символы форматирования. Символ * указывает, что вы хотите использовать местное время:
символ | описывать | Пример |
---|---|---|
%a | Сокращение дня недели (Вс..Сб) * | Thu |
%A | Полное название дня недели (воскресенье..суббота) * | Thursday |
%b | Сокращение месяца (январь.декабрь) * | Aug |
%B | Полное название месяца (январь..декабрь) * | August |
%c | Дата и время* | Thu Aug 23 14:55:02 2001 |
%C | Год делится на 100 и округляется ( 00-99 ). | 20 |
%d | День месяца ( 01-31 ) | 23 |
%D | Дата, MM/DD/YY равна %m/%d/%y | 08/23/01 |
%e | День месяца, используя пробелы для заполнения отдельных цифр ( 1-31 ). | 23 |
%F | Аббревиатура YYYY-MM-DD аналогична %Y-%m-%d | 2001-08-23 |
%g | Последние две цифры года ( 00-99 ) | 01 |
%g | Год | 2001 |
%h | Сокращение месяца* (то же, что и опция %b ) | Aug |
%H | 24-часовой формат ( 00-23 ) | 14 |
%I | 12-часовой формат ( 01-12 ) | 02 |
%j | День года ( 001-366 ) | 235 |
%m | Месяц( 01-12 ) | 08 |
%M | Минуты ( 00-59 ) | 55 |
%n | новая строка ( 'n' ) |
|
%p | Показать до полудня или после полудня | PM |
%r | Время (чч:мм:сс AM или PM), 12 часов* | 02:55:02 pm |
%R | 24-часовой формат времени HH:MM , эквивалентный %H:%M | 14:55 |
%S | Количество секунд ( 00-61 ) | 02 |
%t | Горизонтальная вкладка ( 't' ) |
|
%T | Время (24-часовой формат) (чч:мм:сс), эквивалентное %H:%M:%S | 14:55 |
%u | Формат дня недели ISO 8601, понедельник — 1 ( 1-7 ). | 4 |
%U | Номер недели года, воскресенье — первый день ( 00-53 ). | 33 |
%V | ISO 8601 неделя ( 00-53 ) | 34 |
%w | День недели (0 представляет воскресенье) ( 0-6 ) | 4 |
%W | Номер недели года, понедельник — первый день ( 00-53 ). | 34 |
%x | Формат отображения даты (мм/дд/гг) * | 08/23/01 |
%X | Формат отображения времени* | 14:55:02 |
%y | Год, две цифры ( 00-99 ) | 01 |
%Y | Год | 2001 |
%z | Смещение часового пояса между ISO 8601 и UTC (1 минута = 1, 1 час = 100). | +100 |
%Z | Название текущего часового пояса, например «Китайское стандартное время» * | CDT |
%% | символ % | % |
Результат выполнения приведенного выше примера:
Время и дата - 12.06.2016 12:15:13 Время и дата - 12.06.2016 04:15:13