Date command is een extern bash-programma dat het mogelijk maakt om de systeemdatum en -tijd in te stellen of weer te geven. Het biedt ook verschillende opmaakopties. Date command is standaard geïnstalleerd op alle Linux-distributies.
$ which date $ type -a date

Typ date command in de terminal om de huidige datum en tijd weer te geven.
$ date

Verander Linux systeemdatum en -tijd
Met behulp van date command kan de systeemdatum, tijd en tijdzone worden gewijzigd en moeten de wijzigingen worden gesynchroniseerd met de hardwareklok.
$ date --set="Thu Nov 12 13:06:59 IST 2020" $ hwclock --systohc

Opmaakopties
A good place to get the list of formatting options will be the man page.
$ man date
Laten we enkele van de meest voorkomende opmaakopties bekijken die we zullen gebruiken.
- Voor het toepassen van opmaak gebruik je “+ gevolgd door “formatter“.
- Voor een lijst met opmaakopties voor GNU\LINUX kijk je naar de gelinkte man pagina.
- Voor een lijst met opmaakopties voor BSD kijk je naar de gelinkte man pagina.
De twee belangrijke onderdelen van het date command zijn het gebruik van Formaat +%
en de –date optie.
Nu laten we wat opmaak toepassen op het date commando. Om opmaak toe te passen, voeg een plusteken (+)
toe gevolgd door %formatter
zoals getoond in voorbeelden.
Datumverwerking in Linux
Laten we eens kijken hoe we datumgerelateerde opmaak kunnen gebruiken in een eenvoudig shellscript genaamd ‘date.sh‘.
# PRINT YEAR,MONTH,DAY AND DATE... echo "We are in the year = $(date +%Y)" echo "We are in the year = $(date +%y)" # Difference between %Y and %y is %Y will print 4 digits while %y will print the last 2 digits of the year. echo "We are in the month = $(date +%m)" echo "We are in the month = $(date +%b)" echo "We are in the month = $(date +%B)" # Difference between %B and %b is, %B will print full month name while %b will print abbreviated month name. echo "Current Day of the month = $(date +%d)" echo "Current Day of the week = $(date +%A)" echo "Current Day of the week = $(date +%a)" # Difference between %A and %a is, %A will print full Weekday name while %a will print abbreviated weekday name. # Instead of formatting to get the date, we can use %D which will print the date as %m/%d/%y or %F which prints in %Y-%M-%d format. echo "Date using %D = $(date +%D)" echo "Date using %F = $(date +%F)"

Tijdverwerking in Linux
Laten we eens kijken hoe we tijd gerelateerde opmaak kunnen gebruiken in een eenvoudig shellscript genaamd ‘time.sh‘.
# PRINT HOURS, MINS, SECONDS, NANO SECONDS echo Hours = $(date +%H) echo Minutes = $(date +%M) echo Seconds = $(date +%S) echo Nanoseconds = $(date +%N) echo Epoch Time = $(date +%s) echo "current time = $(date +%H:%M:%S:%N)" # can also use %T which displays Time in HH:MM:SS format. echo "current time in 24 hour format = $(date +%T)" # can also use %r to display time in 12 hour format. echo "current time in 12 hour format = $(date +%r)"

Met de –date of -d vlag
Met de --date
of -d
vlag kan de invoer als een tekenreeks worden doorgegeven en het date commando weet hier slim mee om te gaan.
Laten we enkele voorbeelden bekijken om te begrijpen hoe het werkt.
# Print yesterday's date and time. echo "Yesterday = $(date -d "Yesterday")" # Print Tomorrow date and time. echo "tomorrow = $(date -d "tomorrow")" # Find what is the date and time before 10 days from now. echo "Before 10 days = $(date -d "tomorrow -10 days")" # Find last month and next month echo "Last month = $(date -d "last month" "%B")" echo "Next month = $(date -d "next month" "%B")" # Find last year and next year echo "Last Year = $(date -d "last year" "+%Y")" echo "Next Year = $(date -d "next year" "+%Y")" # Forecast the weekday echo "2 days away from today and it comes on weekdays? = $(date -d "Today +2 days" "+%A")

Veelvoorkomende bewerkingen
het aantal dagen tussen 2 opgegeven data berekenen.
$ echo $(( ( $(date -d "2020-11-10" "+%s") - $(date -d "2020-11-01" "+%s") ) / 86400))
Vaststellen of het opgegeven jaar een schrikkeljaar is of niet.
$ for y in {2000..2020}; do date -d $y-02-29 &>/dev/null && echo $y is leap year; done

Toekennen van de uitvoer van het date commando aan een variabele.
$ TODAY=$(date +%Y-%m-%d) OR $ TODAY1=$(date +%F) $ echo $TODAY $ echo $TODAY1

Logbestanden maken met de datum toegevoegd aan de bestandsnaam.
Het toevoegen van datum en tijd bij het maken van logbestanden, back-ups of tekstbestanden is een veelvoorkomende bewerking die we het vaakst tegen zullen komen. Laten we een voorbeeld nemen, om een back-up te maken, hebben we een shellscript gemaakt.
Dit script zal een back-up maken van 00:00 tot 23:59 en is gepland om dagelijks om 00:00 van de volgende dag uit te voeren. We willen logbestanden maken met de datumnotatie van gisteren.
CUSTOM_FORMAT=$(date --date "Yesterday" "+%d-%y-%H:%M") LOG_FILE=/var/log/custom_application/application_${CUSTOM_FORMAT}.log echo "Script started" >> ${LOG_FILE} ... CODE BLOCKS ... echo "Script completed" >> ${LOG_FILE}
Dat is het voor dit artikel. In dit artikel hebben we gezien hoe je bash datum en tijd kunt gebruiken in Linux. Laat ons jouw feedback weten.
Source:
https://www.tecmint.com/change-linux-system-date-and-time/