Работа с форматами дат в Bash

Thank you for reading this post, don't forget to subscribe!
При напи­са­нии bash скрип­тов, посто­ян­но при­хо­дит­ся рабо­тать с date, а так же зада­вать фор­ма­ты дат, по нача­лу было очень не при­выч­но видеть даты "задом на перед" т.е. сна­ча­ла год, потом месяц, потом день. При напи­са­нии скрип­тов, пери­о­ди­че­ски при­хо­дит­ся выво­дить даты на экран или писать даты в лог файл, в свя­зи с этим решил напи­сать крат­кую памят­ку о том, как мож­но рабо­тать с датами.

Просмотреть просто дату в Bash

Мож­но исполь­зо­вав коман­ду date

date
Tue Jun 28 22:18:06 +06 2016

 

Задать нуж­ный фор­мат даты мож­но исполь­зо­вав кон­струк­цию +"%m-%d-%y"

date +"%m-%d-%y"
06-28-16

 

Что­бы ука­зать пол­ный год, необ­хо­ди­мо ука­зать год заглав­ным сим­во­лом Y:

date +"%m-%d-%Y"
06-28-2016

 

 Так же дату мож­но выве­сти в фор­ма­те mm/dd/yy:

date +"%D"
06/28/16

 

Указать время в Bash

К дате мож­но ука­зать вре­мя, исполь­зо­вав кон­струк­цию +"%H:%M:%S":

date +"%H:%M:%S"
22:23:46

 

Все в месте:

date "+%d-%m-%Y-%H-%M-%S"
28-06-2016-22-25-35

 

Использование date в Bash скрипте

В скрип­тах мож­но исполь­зо­вать к при­ме­ру так:

#!/bin/bash

echo "Hi! Current date and time - $(date "+%d-%m-%Y %H:%M:%S")"

 

Пример операции с датами

Дата­ми мож­но опе­ри­ро­вать, напри­мер при­бав­лять или отни­мать дни:

date -d "+1 day"

 

или

date -d "1 day ago"