date în Linux / Bash

Discuri și sistem GNU coreutils

Afișează data și ora curentă în orice format, calculează date relative și convertește timestamp-uri Unix.

Sintaxă comandă
date [opțiuni] [+FORMAT]

Ce face date

date afișează data și ora sistemului. Partea cea mai folosită este formatul: după semnul + scrii un șablon cu specificatori precum %Y (anul), %m (luna), %d (ziua), %H:%M:%S (ora). Așa construiești nume de fișiere pentru backup sau ore pentru jurnalele unui script.

Varianta GNU (cea de pe Linux) acceptă și -d / --date, cu care calculezi date relative („tomorrow”, „next friday”, „3 days ago”) sau convertești un timestamp Unix (secunde de la 1 ianuarie 1970) cu -d @număr. Pe macOS și BSD, date are alte opțiuni pentru aceste operații.

Opțiuni și argumente

Opțiune / Parametru Descriere
+%F Data în format ISO: AAAA-LL-ZZ (echivalent cu %Y-%m-%d).
+%T Ora: HH:MM:SS (echivalent cu %H:%M:%S).
+%s Timestamp-ul Unix (secunde de la 1970-01-01 UTC).
+%A / +%B Numele zilei săptămânii / al lunii, în limba din LC_TIME.
-d, --date TEXT Afișează data descrisă de text în loc de ora curentă (ex. -d tomorrow, -d @1700000000).
-u, --utc Lucrează în UTC, nu în fusul orar local.
-I, --iso-8601[=timespec] Format ISO 8601 (ex. -Iseconds: 2026-10-25T10:30:00+02:00).

Exemple

Exemplul 1: Formate pentru oameni și pentru scripturi

Același moment, afișat în trei feluri: dată și oră, ISO 8601 și timestamp Unix.

date +"%Y-%m-%d %H:%M:%S"
date -Iseconds
date +%s

Ieșire în terminal

2026-10-25 10:30:00
2026-10-25T10:30:00+02:00
1792917000

Exemplul 2: Nume de fișier de backup cu data zilei

Substituția $(date +%F) pune data curentă în numele arhivei, așa că backup-urile zilnice nu se suprascriu.

tar -czf "backup-$(date +%F).tar.gz" documente/
ls backup-*

Ieșire în terminal

backup-2026-10-25.tar.gz

Exemplul 3: Date relative, timestamp-uri și numele zilei în română

Cu -d (doar în GNU date) aflăm data de vinerea viitoare, convertim un timestamp și vedem în ce zi cade Crăciunul. Pentru numele în română este nevoie ca localizarea ro_RO.UTF-8 să fie instalată.

date -d "next friday" +%F
date -u -d @1700000000 +"%F %T"
LC_TIME=ro_RO.UTF-8 date -d 2026-12-25 +%A

Ieșire în terminal

2026-10-30
2023-11-14 22:13:20
vineri

Greșeli frecvente

  • Folosirea caracterului % direct într-un fișier crontab: acolo % are sens special și trebuie scris \% (ex. date +\%F).
  • Copierea unui script cu date -d pe macOS: varianta BSD nu are -d pentru date relative și dă eroare.
  • Uitarea ghilimelelor când formatul conține spații: date +%F %T eșuează, corect este date +"%F %T".

Comenzi înrudite

  • timedatectl: Afișează și modifică ora sistemului, fusul orar și sincronizarea automată prin NTP, pe sisteme cu systemd.
  • printf: Formatează și afișează date conform unui șablon precis, similar cu funcția printf din C.