date (Unix)

standard UNIX utility

A Unix date parancsa kiírja az időt és a dátumot. Csak egy adminisztrátor jogosult arra, hogy a rendszer időt megváltoztassa.

A Unix date parancs

Használata szerkesztés

Ha a parancsot opciók, argumentumok nélkül használjuk, akkor ez az aktuális időt és dátumot írja ki a képernyőre. Megjelenik az aktuális nap neve, a hónap neve, a nap, ez után az idő, óra, perc és másodperc kettősponttal elválasztva, utána az időzóna és az év.

$date Fri Jul 27 14:12:06 EDT 2007

Formatálás szerkesztés

Ha a kiírás alakját akarjuk megváltoztatni akkor a + segítségével opciókat lehet hozzáadni.

Használata Leírása Értéke/Példa
Nap
%a a hét napja rövidítve kedd
%A a hét napja teljesen kedd
%d a hónap napja (dd), zéró hozzáadva 16
%e a hónap napja (dd) 16
%j az év napja, nullával kezdődik 000-366
%u a hét napja hétfővel (1) kezdődően 2
%w a hét napja vasárnappal (0) kezdődően, i.e. smtwtfs 2
Hét
%U a hét száma, első nap a Vasárnap 0–53
%W a hét száma, első nap a Hétfő 0–53
%V az év melyik hete 0–53
Hónap
%m mm month 04
%h Mon ápr
%b Mon, locale's abbreviated ápr
%B locale's full month, variable length április
Év
%y yy two digit year 00–99
%Y ccyy year 2024
%g 2-digit year corresponding to the %V week number
%G 4-digit year corresponding to the %V week number
Század
%C cc század 00–99
Dátum
%D mm/dd/yy 04/16/24
%x helyi dátum megjelenítés (mm/dd/yy) 04/16/2024
%F %Y-%m-%d
Óra
%l (kicsi L) óra (12 órás idő) 4
%I (Nagy I) óra (12 órás idő), zéró elől 04
%k óra (24 órás idő) 4
%H óra (24 órás idő), zéró elől 04
%p AM vagy PM AM
%P am vagy pm am
Percek
%M MM percek 58
Másodpercek
%s másodpercek 00:00:00 1970-01-01 UTC-tól 1713243528
%S SS másodpercek 00–60
(The 60 is necessary to accommodate a leap second)
%N nanoszekundumok 000000000–999999999
Idő
%r óra, perc, másodperc (12 órás idő) 04:58:48 AM
%R óra, perc, másodperc (24 órás idő) hh:mm e.g. 04:58
%T óra, perc, másodperc (24 órás idő) 04:58:48
%X helyi idő kiíratása (%H:%M:%S)
Dátum és idő
%c helyi idő és dátum Sat Nov 04 12:02:33 EST 1989
Időzóna
%z -zzzz RFC-822 numerikus stílus -0500
%Z időzóna betűkkel EST

Példák szerkesztés

date "+%m/%d/%y"
7/4/06
date "+%Y%m%d"
20060704

az idő átadása egy változónak

START=`date '+%r'`
echo $START
03:06:02 PM
sleep 5
echo $START
03:06:02 PM

Yesterday egy változó

DATE=$(date -d yesterday +"%Y%m%d")
echo $DATE
20060704

Az idő kiírása különböző időzónákban. Az időzóna típusai megtalálhatóak a /usr/share/zoneinfo

OLDTZ=$TZ
export TZ=GMT; echo "GMT:               `date +\"%F %R (%Z)\"`"
GMT:               2008-10-31 12:30 (GMT)
export TZ=Europe/Stockholm; echo "Stockholm:    `date +\"%F %R (%Z)\"`"
Stockholm:    2008-10-31 13:30 (CET)
export TZ=Asia/Kuala_Lumpur; echo "Kuala Lumpur:        `date +\"%F %R (%Z)\"`"
Kuala Lumpur:        2008-10-31 20:30 (MYT)
export TZ=US/Central; echo "Dallas:             `date +\"%F %R (%Z)\"`"
Dallas:             2008-10-31 07:30 (CDT)
export TZ=$OLDTZ

Karakterláncban

date +"%Y%m%d" -d sunday
20060709

date +"%Y%m%d" -d last-sunday
20060702

date +"%Y%m%d" -d last-week
20060627

date +"%Y%m%d" -d last-month
20060604

date +"%Y%m%d" -d last-year
20050704

date +"%Y%m%d" -d next-week
20060711

date +"%Y%m%d" -d next-month
20060804

date +"%Y%m%d" -d next-year
20070704

Az idő kiírása másodpercben 1970-01-01 -től (Unix korszak):

date +"%s" -d "Fri Apr 24 13:14:39 CDT 2009"
1240596879

Unix korszak időt átalakítani olvasható alakba:

date -d "UTC 1970-01-01 1240596879 secs"
Fri Apr 24 13:14:39 CDT 2009

Vagy:

date -ud @1000000000
Sun Sep 9 01:46:40 UTC 2001

Kapcsolódó szócikkek szerkesztés