Работа с датой и временем: модуль datetime

Options

-d, —date=STRING Display time described by string STRING, instead of the default, which is ‘now‘.
-f, —file=DATEFILE Like —date, but processed once for each line of file DATEFILE.
-I[TIMESPEC],—iso-8601[=TIMESPEC] Output date/time in ISO 8601 format. For values of TIMESPEC, use ‘date‘ for date only (the default), ‘hours‘, ‘minutes‘, ‘seconds‘, or ‘ns‘ for date and time to the indicated precision.
-r, —reference=FILE Display the last modification time of file FILE.
-R, —rfc-2822 Output date and time in RFC 2822 format. Example: Mon, 07 Aug 2006 12:34:56 -0600
—rfc-3339=TIMESPEC Output date and time in RFC 3339 format. TIMESPEC can be set to ‘date‘, ‘seconds‘, or ‘ns‘ for date and time to the indicated precision. Date and time components are separated by a single space, for example: 2006-08-07 12:34:56-06:00
-s, —set=STRING Set time described by string STRING.
-u, —utc, —universal Print or set Coordinated Universal Time.
—help Display a help message and exit.
—version Display version information and exit.

Синтаксис команды date

Программа может выполнятся от имени обычного пользователя. Стандартный синтаксис команды (квадратные скобки обозначают необязательное наличие):

date …

Ниже представлена таблица с часто применяемыми опциями для date.

Опция Длинный вариант Значение
-d STRING —date=STRING Вывод даты по указанной строке (например ‘yesterday’, ‘tomorrow’, ‘last monday’).
-I —iso-8601 Вывод даты в формате ISO 8601. FMT по умолчанию содержит ‘date’. Также может содержать ‘hourse’, ‘minutes’, ‘seconds’, ‘ns’ для отображения соответствующих значений и часовой пояс относительно UTC рядом с датой.
 —rfc-3339=FMT Вывод даты в формате RFC 3339. FMT по умолчанию содержит ‘date’. Также может содержать ‘seconds’ и ‘ns’ для отображения секунд или наносекунд.
 -r FILE —reference=FILE Вывод даты последней модификации указанного файла в формате по умолчанию.
-u —utc Вывод UTC-даты

Аргумент ФОРМАТ отвечает за форматирование вывода даты. Для его указания необходимо поставить знак «+» и написать нужную маску. Наиболее популярные форматы:

Формат Значение
%% Знак процента
%a День недели текущей локали в короткой форме («Чтв»)
%A День недели текущей локали в длинной форме («Четверг»)
%b Месяц года текущей локали в короткой форме в родительном падеже («янв»)
%B Месяц года текущей локали в длинной форме в родительном падеже («января»)
%c Дата и время текущей локали без указания часового пояса
Первые две цифры текущего года
%d Числовой день месяца с ведущим нулём
%D Дата в формате %m/%d/%y
%e День месяца; аналог %_d
%F Дата в формате %Y-%m-%d
%h Аналог %b
%H Часы (00..23)
%I Часы (01..12)
%j День года (001..366)
%m Месяц (01..12)
%M Минуты (00..59)
%n Новая строка
%q Квартал года
%S Секунды (00..59)
%t Знак табуляции
%T Время в формате %H:%M:%S
%u Числовой день недели; 1 — понедельник
%x Дата в локальном формате
%X Время в локальном формате
%Z Аббревиатура временной зоны

Синтаксис и основные опции

Согласно официальной информации, доступной из справочного руководства (команда man date), синтаксис команды date следующий:

date . . . date YY]

Если дать команду date без аргументов или если аргументы начинаются с символа «+», то по-умолчанию будет выведено текущие значения даты и времени. В ином случае производится установка даты и времени, передаваемые в аргументах в каком-либо из форматов. Например, для установки времени введите команду

date MMDDhhmmYYYY.ss

где

MM — МесяцDD — День,hh — часы в 24-часовом формате,mm — минуты,YYYY — 4 цифры года,ss — секунды.

Пример

date 03082019

Ниже мы боле подробно рассмотрим параметры ввода даты и времени.

Следующая команда выводит информацию о текущих дате и времени в форматированном виде:

$ date ‘+Дата: %m/%d/%y%nВремя: %H:%M:%S’’

Как видно, символ «+» позволяет печатать установленные (текущие) значения, а следующее за ним выражение задаёт формат вывода этих значений. Шаблон подстановки «%n» здесь служит для переноса строки. Все остальные шаблоны подстановки используются для выборки соответствующих компонент времени: месяцы, дни, часы, минуты и т. д. Само же выражение должно заключаться в кавычках, если в нём присутствуют пробельные символы.

Параметры CC, YY и .ss в синтаксисе date означают две последние цифры года, век и секунды (от 0 до 59) соответственно. И эти параметры не являются обязательными. Для того, чтобы устанавливать дату и время с помощью команды date, необходимы права суперпользователя.

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

Опция Значение
-d, —date=STRING Вычисляет день недели для заданной даты в качестве STRING. Дата задаётся в формате ггммдд.
-f, —file=DATEFILE То же самое, что и -d, но для исходных данных используется содержимое из файла FILE.
-r, —reference=FILE Определяет время последней модификации файла FILE.
-s, —set=STRING Устанавливает время/дату, заданные строкой STRING.
-u, —utc, —universal Использование формата

Класс datetime.time

Экземпляр класса представляет собой время (часы, минуты, секунды и микросекунды).

Пример 7: объект time для представления времени.

from datetime import time

# time(hour = 0, minute = 0, second = 0)
a = time()
print("a =", a)

# time(hour, minute and second)
b = time(11, 34, 56)
print("b =", b)

# time(hour, minute and second)
c = time(hour = 11, minute = 34, second = 56)
print("c =", c)

# time(hour, minute, second, microsecond)
d = time(11, 34, 56, 234566)
print("d =", d)

Когда вы запустите программу, вывод будет следующим:

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

После того как вы создадите объект , вы можете легко получить его атрибуты, такие как часы, минуты и т. д.

from datetime import time

a = time(11, 34, 56)

print("hour =", a.hour)
print("minute =", a.minute)
print("second =", a.second)
print("microsecond =", a.microsecond)

Когда вы запустите программу, вывод будет следующим:

Обратите внимание, что мы не передали аргумент. Следовательно, его значение по умолчанию будет равно 0

Формат datetime

Представление даты и времени может отличатся в разных странах, организациях и т. д. В США, например, чаще всего используется формат «мм/дд/гггг», тогда как в Великобритании более распространен формат «дд/мм/гггг».

В Python для работы с форматами есть методы и .

Python strftime() — преобразование объекта datetime в строку

Метод определен в классах , и . Он создает форматированную строку из заданного объекта , или .

Пример 16: форматирование даты с использованием метода strftime().

from datetime import datetime

now = datetime.now()

t = now.strftime("%H:%M:%S")
print("time:", t)

s1 = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("s1:", s1)

s2 = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("s2:", s2)

Когда вы запустите программу, результат будет примерно таким:

Здесь , , , и т. д. — коды для определения формата. Метод принимает один или несколько кодов и возвращает отформатированную строку на его основе.

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

Основные коды для определения формата:

  • — год
  • — месяц
  • — день
  • — час
  • — минута
  • — секунда

Python strptime()- преобразование строки в  объект datetime

Метод создает объект datetime из заданной строки (представляющей дату и время).

Пример 17: метод strptime().

from datetime import datetime

date_string = "21 June, 2018"
print("date_string =", date_string)

date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)

Когда вы запустите программу, вывод будет следующим:

Метод принимает два аргумента:

  1. строка, представляющая дату и время.
  2. формат, определяющий, каким образом части даты и времени расположены в переданной строке.

Кстати, коды , и используются для обозначения дня, месяца (название месяца в полном виде) и года соответственно.

Разбор строки с датой

Метод Date.parse(str) считывает дату из строки.

Формат строки должен быть следующим: , где:

  • – это дата: год-месяц-день.
  • Символ используется в качестве разделителя.
  • – время: часы, минуты, секунды и миллисекунды.
  • Необязательная часть обозначает часовой пояс в формате . Если указать просто букву , то получим UTC+0.

Возможны и более короткие варианты, например, или , или даже .

Вызов обрабатывает строку в заданном формате и возвращает таймстамп (количество миллисекунд с 1 января 1970 года UTC+0). Если формат неправильный, возвращается .

Например:

Можно тут же создать объект из таймстампа:

How to Use date Command in Linux

To show the current system time and date, type in the command:

The output displays the day of the week, day of the month, month, year, current time, and time zone. By default, the command is set to the time zone of the operating system.

The option allows users to operate on a specific date. For example, we can type in the following command:

You can use the command to display the given date string in the format of a date. This command does not affect the system’s actual date and time values, and it only prints the requested date. For example:

Linux date Command Format Options

To format the command’s output, you can use control characters preceded by a sign. Format controls begin with the % symbol and are substituted by their current values.

Here, the %Y character is replaced with the current year, %m with month, and %d with the day of the month:

Here are another two formatting examples:

These are the most common formatting characters for the command:

    • – Display date as mm/dd/yy
    • – Year (e.g., 2020)
    • – Month (01-12)
    • – Long month name (e.g., November)
    • – Short month name (e.g., Nov)
    • – Day of month (e.g., 01)
    • – Day of year (001-366)
    • – Day of week (1-7)
    • – Full weekday name (e.g., Friday)
    • – Short weekday name (e.g., Fri)
    • – Hour (00-23)
    • – Hour (01-12)
    • – Minute (00-59)
    • – Second (00-60)

To see all formatting options, run or the man command in your terminal.

Set or Change Date in Linux

To change the system clock manually, use the command. For example, to set the date and time to 5:30 PM, May 13, 2010, type:

Most Linux distributions have the system clock synchronized using the or the services, so be careful when the setting the clock manually.

Display Past Dates

Use the option to display past dates in Linux. The command accepts values such as , , , , , and similar. So, use the following strings to print past dates::

The option can also display future dates. Like with past dates, you can type in strings to print upcoming dates:

Display the Date String at Line of File

The option prints the date string present at each line of the file. Unlike the option, can present multiple date strings at each line.

This is the syntax for the command:

Here we use the cat command to add dates to a file and then print them with the date command:

Display Last Modified Timestamp of a Date File

When you use the option, the command prints the last modification time of a file. For example, the following command prints the last time the hosts file was changed:

Override a Time Zone

By default, the command uses the time zone defined in . To use a different time zone in the environment, set the variable to the desired time zone.

For example, to switch to New York time, enter:

Type in the command to return the system to its default time zone. To see all available time zones, use the command.

The command can also show the local time for a different time zone. For example, to display the local time for 4:30 PM next Monday on the Australian east coast, type:

Use date with Other Commands

You can use the command to create file names that contain the current time and date. The input below creates a backup MySQL file in the format of the current date:

Another common use of the command is in shell scripts. Below we assign the output of to the variable:

Use Unix Epoch Time (Epoch Converter)

You can use the command as an Epoch converter. Epoch, or Unix timestamps, is the number of seconds that have passed since January 1, 1970, at 00:00:00 UTC.

To show the number of seconds from the epoch to the current day, use the format control:

To see how many seconds passed from epoch to a specific date, enter:

Conclusion

You now have a good understanding of how to use the command in Linux. If you are interested in more date/time configuration options for Linux, read How to Set or Change Timezone/Date/Time on Ubuntu.

Синтаксис

Основные параметры:

  • -d. Показывает время  и дату в строке. Например tommorow, last tuesday,  wednesday, thursday, friday, saturday, sunday. Вся команда пишется date -d tommorow.
  • -r. Показывает время изменения файла.
  • -R. Выводит время согласно стандарту RFC-2822. Пример Tue, 13 Aug 2019 10:03:27 +0600.
  • -s или —set. Устанавливает системное время.
  • u. Вывод даты в международном формате UTC.
  • —help. На экране покажет справочную информацию.
  • —version. Версия программы.

Управление выводом это не обязательный параметр. Чтобы его включить необходимо написать знак + и шаблон.

Основные шаблоны:

  • %% — на экране знак процента.
  • %a — на экране текущий день недели, в краткой форме. Например «Втр».
  • %A — день недели в полной форме. Например «Вторник».
  • %b — текущий месяц в краткой форме (Авг).
  • %B — месяц в полной форме (Август).
  • %c — стандартный вывод даты и времени без часового пояса.
  • %C — аргумент покажет две первые цифры от года. Например если в системном времени стоит 2019, то на экране будет «20».
  • %d. Покажет какой сегодня день.
  • %D. Дата в формате месяц/число/год.
  • %e. Покажет какой сегодня день.
  • %F. Покажет дату в формате год — месяц — число.
  • %h. Текущий месяц в сокращенном варианте. Пример Авг.
  • %H. Сколько сейчас часов в формате 24.
  • %I. Часы в формате 12.
  • %j. Номер дня году, от 001 до 366.
  • %m. Какой месяц в формате от 1 -12.
  • %M. Выводит минуты в формате 00 до 59.
  • %S. Покажет сколько сейчас секунд на системных часах, от 00 до 59.
  • %n. Сделает отступ, две строки вниз.
  • %t. Табуляция, отступ одна строка вниз.
  • %T. Время в формате 00 (часы) : 00 (минуты): 00 (секунды).
  • %u. День недели числом, где 1 это понедельник, 2 -вторник, 3 — среда, 4-четверг, 5 — пятница, 6- суббота, 7 — воскресенье.
  • %x. Дата — день.месяц.год.
  • %X. Время — часы(24) : минуты : секунды.
  • %Z. На экране часовой пояс. Пример OMST — это неофициальное название локальной временной зоны города Омска.
  • %Y. Год.

Примеры

Для первого примера введем команду без параметров.

Как видно на скриншоте выше утилита без параметров покажет текущие время.

Когда синхронизация времени с внешним источником не работает и в локальной сети нет сервера времени, необходимо быстро установить системное время на Линуксе. Для этого используется утилита с параметром «-s». Пусть сейчас точное время 18:00:00.

Тогда установим время так:

Добавим дату. Для этого нужно ввести дату по шаблону год-месяц-число и заключить все в кавычки.

Узнаем дату время изменения файла под именем «file». Для это используем аргумент «-r».

Работа с часовым поясом

Чтобы вывести на экран время в определенном часовом поясе необходимо указать аргумент TZ по шаблону TZ=’часовой пояс’ date

TZ может принимать значения:

  1. ‘Europe/Moscow’;
  2. ‘Europa/Berlin’;
  3. ‘Europa/Polsha’;
  4. ‘America/Los_Angeles’;
  5. и другие.

Узнаем время по Москве.

🏃💨 Subway Surfers — Official Launch Trailer

Subway Surfers — Official Launch Trailer

Команда date отображает или устанавливает системную дату. Чаще всего он используется для печати даты и времени в разных форматах и ​​для расчета будущих и прошлых дат.

В этом уроке мы рассмотрим основы команды date.

Использование команды Linux date

Синтаксис команды следующий:

Чтобы отобразить текущее системное время и дату, используя форматирование по умолчанию, вызовите команду без каких-либо параметров:

Вывод будет включать день недели, месяц, день месяца, время, часовой пояс и год:

Параметры форматирования даты

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

Символ будет заменен на год, с месяцем и с днем ​​месяца:

Вот еще один пример:

Ниже приведен небольшой список некоторых наиболее распространенных символов форматирования:

%a — сокращенное краткое название дня недели (например, понедельник) %A — сокращенное полное название дня недели (например, понедельник) %b — сокращенное название месяца (например, январь) %B — сокращенное название месяца (например, январь) %d — День месяца (например, 01) %H — Час (00..23) %I — Час (01..12) %j — День года (001..366) %m — Месяц (01..12 ) %M — Минута (00..59) %S — Вторая (00..60) %u — День недели (1..7) %Y — Полный год (например, 2019)

Чтобы получить полный список всех параметров форматирования, запустите или в вашем терминале.

Дата Строка

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

Использование пользовательского форматирования:

Строка даты также может принимать значения, такие как «завтра», «пятница», «последняя пятница», «следующая пятница», «следующий месяц», «следующая неделя»… и т. Д.

Вы также можете использовать параметр строки даты, чтобы показать местное время для разных часовых поясов. Например, чтобы показать местное время для 6:30 утра следующего понедельника на восточном побережье Австралии, введите:

Переопределить часовой пояс

Команда использует системный часовой пояс по умолчанию. Чтобы использовать другой часовой пояс, установите переменную окружения в желаемый часовой пояс.

Например, чтобы показать время в Мельбурне, введите:

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

Конвертер эпох

Команда может использоваться как преобразователь эпохи. Время, или метки времени Unix, — это количество секунд, прошедших с 1 января 1970 года в 00:00:00 UTC.

Чтобы напечатать количество секунд от эпохи до текущего дня, используйте элемент управления форматом :

Чтобы преобразовать секунды с начала эпохи в дату, установите секунды в виде строки даты с префиксом :

Использование даты с другими командами

Команда наиболее часто используется для создания имен файлов, которые содержат текущее время и дату.

Команда ниже создаст файл резервной копии Mysql в следующем формате

Вы также можете использовать команду в своих скриптах оболочки. В приведенном ниже примере мы присваиваем вывод переменной :

Установите системное время и дату

Установка системного времени и даты вручную с помощью команды обычно не рекомендуется, поскольку в большинстве дистрибутивов Linux системные часы синхронизируются с использованием служб или .

Однако, если вы хотите установить системные часы вручную, вы можете использовать . Например, если вы хотите установить дату и время 17:30, 01 июня 2019 г., введите:

Вывод

К настоящему времени вы должны хорошо понимать, как использовать команду date в Linux.

дата-терминал

Команда echo является одной из самых основных и часто используемых команд в Linux. Аргументы, передаваемые echo, выводятся на стандартный вывод.

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

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

Examples

date

Running date with no options will output the system date and time, as in the following output:

Thu Feb 8 16:47:32 MST 2001
date -s "11/20/2003 12:48:00"

Set the system date and time to November 20, 2003, 12:48 PM.

date "+DATE: %m/%d/%y%nTIME: %H:%M:%S"

Outputs the date and time in the following format:

DATE: 02/08/01TIME: 16:44:55
ls -al > output_$(date +"%m_%d_%Y")

In bash, this command will generate a directory listing with ls, and redirect the output to a file which includes the current day, month, and year in the file name. It does this using bash , running the date command in a subshell and inserting that output into the original command.

Date format

FORMAT is a sequence of characters which specifies how output will appear. It comprises some combination of the following sequences:

%% A literal percent sign («%«).
%a The abbreviated weekday name (e.g., Sun).
%A The full weekday name (e.g., Sunday).
%b The abbreviated month name (e.g., Jan).
%B Locale’s full month name (e.g., January).
%c The date and time (e.g., Thu Mar 3 23:05:25 2005).
%C The current century; like %Y, except omit last two digits (e.g., 20).
%d Day of month (e.g., 01).
%D Date; same as %m/%d/%y.
%e Day of month, space padded; same as %_d.
%F Full date; same as %Y-%m-%d.
%g Last two digits of year of ISO week number (see %G).
%G Year of ISO week number (see %V); normally useful only with %V.
%h Same as %b.
%H Hour (00..23).
%I Hour (01..12).
%j Day of year (001..366).
%k Hour, space padded ( ..23); same as %_H.
%l Hour, space padded ( 1..12); same as %_I.
%m Month (01..12).
%M Minute (00..59).
%n A newline.
%N Nanoseconds (000000000..999999999).
%p Locale’s equivalent of either AM or PM; blank if not known.
%P Like %p, but lowercase.
%r Locale’s 12-hour clock time (e.g., 11:11:04 PM).
%R 24-hour hour and minute; same as %H:%M.
%s Seconds since 1970-01-01 00:00:00 UTC.
%S Second (00..60).
%t A tab.
%T Time; same as %H:%M:%S.
%u Day of week (1..7); 1 is Monday.
%U Week number of year, with Sunday as first day of week (00..53).
%V ISO week number, with Monday as first day of week (01..53).
%w Day of week (..6); 0 is Sunday.
%W Week number of year, with Monday as first day of week (00..53).
%x Locale’s date representation (e.g., 12/31/99).
%X Locale’s time representation (e.g., 23:13:48).
%y Last two digits of year (00..99).
%Y Year.
%z +hhmm numeric time zone (e.g., -0400).
%:z +hh:mm numeric time zone (e.g., -04:00).
%::z +hh:mm:ss numeric time zone (e.g., -04:00:00).
%:::z Numeric time zone with «» to necessary precision (e.g., -04, +05:30).
%Z Alphabetic time zone abbreviation (e.g., EDT).

By default, date pads numeric fields with zeroes. The following optional flags may follow ‘%‘:

(Hyphen) do not pad the field.
_ Pad with spaces.
Pad with zeros.
^ Use uppercase if possible.
# Use opposite case if possible.

After any flags comes an optional field width, as a decimal number; then an optional modifier, which is either E to use the locale’s alternate representations if available, or O to use the locale’s alternate numeric symbols if available.

Итого

  • Дата и время представлены в JavaScript одним объектом: Date. Создать «только время» при этом нельзя, оно должно быть с датой. Список методов вы можете найти в справочнике Date или выше.
  • Отсчёт месяцев начинается с нуля.
  • Отсчёт дней недели (для ) тоже начинается с нуля (и это воскресенье).
  • Объект удобен тем, что автокорректируется. Благодаря этому легко сдвигать даты.
  • При преобразовании к числу объект даёт количество миллисекунд, прошедших с 1 января 1970 UTC. Побочное следствие – даты можно вычитать, результатом будет разница в миллисекундах.
  • Для получения текущей даты в миллисекундах лучше использовать , чтобы не создавать лишний объект (кроме IE8-)
  • Для бенчмаркинга лучше использовать (кроме IE9-), он в 1000 раз точнее.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: