← man/system_admin
date — man date — 80×24
ugur@toprak:~/man/system_admin$man date
Bölüm 1 Sistem Yönetimi

date

tarihi ve saati görüntüleme veya ayarlama

Sinopsis

     date [-nRu] [-z output_zone] [-I[FMT]] [-r filename] [-r seconds] [-v[+|-]val[y|m|w|d|H|M|S]]
	  [+output_fmt]
     date [-jnRu] [-z output_zone] [-I[FMT]] [-v[+|-]val[y|m|w|d|H|M|S]] [[[mm]dd]HH]MM[[cc]yy][.SS]
	  [+output_fmt]
     date [-jnRu] [-z output_zone] [-I[FMT]] [-v[+|-]val[y|m|w|d|H|M|S]] -f input_fmt new_date
	  [+output_fmt]

Açıklama

Bağımsız değişkenler olmadan çağrıldığında, date yardımcı programı geçerli tarihi ve saati görüntüler. Aksi takdirde, belirtilen seçeneklere bağlı olarak, date tarihi ve saati ayarlayacak veya kullanıcı tarafından tanımlanan bir şekilde yazdıracaktır.

date yardımcı programı çekirdek saatinden okunan tarih ve saati görüntüler. Tarih ve saati ayarlamak için kullanıldığında hem çekirdek saati hem de donanım saati güncellenir.

Yalnızca süper kullanıcı (superuser) tarihi ayarlayabilir ve sistem güvenlik seviyesi (bkz. securelevel(7)) 1'den büyükse, saat 1 saniyeden fazla değiştirilemez.

Seçenekler aşağıdaki gibidir:

-f input_fmt Varsayılan [[[mm]dd]HH]MM[[cc]yy][.SS] biçimini kullanmak yerine, sağlanan new_date değerini ayrıştırmak için biçim dizesi olarak input_fmt kullanır. Ayrıştırma strptime(3) kullanılarak yapılır.

-I[FMT] ISO 8601 çıktı biçimini kullanır. FMT atlanabilir, bu durumda varsayılan değer date olur. Geçerli FMT değerleri date, hours, minutes, seconds ve ns'dir (nanosaniyeler için). Tarih ve saat belirtilen hassasiyette biçimlendirilir. FMT, hours (veya daha hassas olan minutes, seconds ya da ns) olduğunda, ISO 8601 biçimi saat dilimini de içerir.

  • -j: Tarihi ayarlamaya çalışmaz. Bu, bir tarih biçimini diğerine dönüştürmek için + seçeneğine ek olarak -f bayrağını kullanmanıza olanak tanır. -f biçim dizesi tarafından belirtilmeyen herhangi bir tarih veya saat bileşeninin değerlerini geçerli saatten alacağını unutmayın.

  • -n: Kullanımdan kaldırılmış bayrak, uyumluluk için kabul edilir ve yoksayılır.

  • -R: RFC 2822 tarih ve saat çıktı biçimini kullanır. Bu, LC_TIME değişkeni “C” yereline ayarlanmışken output_fmt olarak “%a, %d %b %Y %T %z” kullanılmasına eşdeğerdir.

-r seconds Epoch'tan (00:00:00 UTC, 1 Ocak 1970; bkz. time(3)) bu yana geçen saniye sayısı olan seconds ile temsil edilen tarihi ve saati yazdırır; ondalık, sekizlik veya onaltılık olarak belirtilebilir.

-r filename filename dosyasının son değişiklik tarihini ve saatini yazdırır.

  • -u: Tarihi UTC (Eşgüdümlü Evrensel Saat) zamanında görüntüler veya ayarlar. Varsayılan olarak date, saati /etc/localtime veya TZ ortam değişkeni tarafından tanımlanan saat diliminde görüntüler.

-z output_zone Saati yazdırmadan hemen önce, belirtilen saat dilimine geçiş yapar; aşağıdaki TZ açıklamasına bakın. Bu, zaman özelliklerini bir bölgeden diğerine kolayca dönüştürmek için -j ile birlikte kullanılabilir.

-v [+|-]val[y|m|w|d|H|M|S] Saniye, dakika, saat, ayın günü, haftanın günü, ay veya yılı val değerine göre ayarlar (yani mevcut tarihi alır ve ayarlama sonucunu görüntüler; tarihi fiilen ayarlamaz). val'ın önüne artı veya eksi işareti gelirse, tarih kalan dizeye göre ileriye veya geriye doğru ayarlanır, aksi takdirde tarihin ilgili kısmı doğrudan ayarlanır. Tarih bu bayraklar kullanılarak gerektiği kadar ayarlanabilir. Bayraklar verilen sırada işlenir.

Değerleri ayarlarken (bunları değiştirmek yerine), saniyeler 0-59 aralığında, dakikalar 0-59 aralığında, saatler 0-23 aralığında, ayın günleri 1-31 aralığında, haftanın günleri 0-6 (Paz-Cmt) aralığında, aylar 1-12 (Oca-Ara) aralığında ve yıllar platforma bağlı olarak sınırlı bir aralıktadır.

i386 üzerinde, yıllar 1969-2038'i temsil eden 69-38 aralığındadır. Diğer tüm platformlarda, 0-68 yılları kabul edilir ve 2000-2068'i temsil eder ve 69-99 yılları kabul edilir ve 1969-1999'u temsil eder. Her iki durumda da, 100 ile 1900 (her ikisi de dahil) arasındaki yıllar kabul edilir ve Gregoryen takviminin 1900 yılına göre yorumlanır; i386'da limit 138'dir ve diğer tüm platformlarda bu limit çok daha yüksektir. 1901'den başlayan yıllar da kabul edilir ve mutlak yıllar olarak yorumlanır.

val sayısal ise, tarihin hangi bölümünün ayarlanacağını belirtmek için y, m, w, d, H, M veya S'den biri kullanılmalıdır.

Haftanın günü veya ay, bir sayı yerine bir isim kullanılarak belirtilebilir. Artı (veya eksi) işaretiyle bir isim kullanılırsa, tarih verilen haftanın gününe veya ayına uyan bir sonraki (önceki) tarihe ileriye (veya geriye) alınacaktır. Verilen haftanın günü veya ayı geçerli olanla aynıysa bu durum tarihi ayarlamayacaktır.

Bir tarih belirli bir değere veya saatten daha büyük birimlere göre ayarlandığında, yaz saati uygulaması hususları yoksayılır. Saat veya daha küçük birimlerdeki ayarlamalar yaz saati uygulamasına uyar. Dolayısıyla, geçerli tarihin 26 Mart, 0:30 olduğunu ve yaz saati ayarlamasının saatin 01:00'de 02:00'ye alınacağı anlamına geldiğini varsayarsak, -v +1H kullanılması tarihi 26 Mart, 2:30 olarak ayarlayacaktır. Benzer şekilde, tarih 29 Ekim, 0:30 ise ve yaz saati ayarlaması saatin 02:00'de 01:00'e geri alınacağı anlamına geliyorsa, 29 Ekim, 2:30'a ulaşmak için -v +3H kullanılması gerekecektir.

Tarih, fiilen var olmayan belirli bir değere göre ayarlandığında (örneğin Europe/London saat diliminde 26 Mart, 1:30 BST 2000), tarih geçerli bir zamana ulaşana kadar birer saatlik birimlerle sessizce ileriye ayarlanacaktır. Tarih, iki kez gerçekleşen belirli bir değere göre ayarlandığında (örneğin 29 Ekim, 1:30 2000), ortaya çıkan saat dilimi, tarihin iki zamandan daha erken olanıyla eşleşeceği şekilde ayarlanacaktır.

Bir tarihi geçersiz bir mutlak güne ayarlamak mümkün değildir, bu nedenle -v 31d -v 12m anahtarlarının kullanılması yılın beş ayı için başarısız olacaktır. Bu nedenle günü ayarlamadan önce ayı ayarlamak yaygındır; -v 12m -v 31d kullanılması her zaman çalışır.

Tarihi aylara göre ayarlamak doğası gereği belirsizdir çünkü bir ay, geçerli tarihe bağlı olarak değişken uzunlukta bir birimdir. Bu tür bir tarih ayarlaması en sezgisel şekilde uygulanır. Her şeyden önce date, ayın gününü korumaya çalışır. Hedef ayın şimdikinden daha kısa olması nedeniyle bu imkansızsa, hedef ayın son günü sonuç olacaktır. Örneğin, 31 Mayıs'ta -v +1m kullanılması tarihi 30 Haziran'a ayarlarken, aynı seçeneğin 30 Ocak'ta kullanılması tarihin Şubat ayının son gününe ayarlanmasıyla sonuçlanacaktır. Bu yaklaşımın kabuk betikleri için de en mantıklı yaklaşım olduğuna inanılmaktadır. Bununla birlikte, aynı sayıda ay kadar ileri ve geri gitmenin sizi farklı bir tarihe götürebileceğini unutmayın.

Daha fazla ayrıntı için aşağıdaki örneklere bakın.

Başında artı (‘+’) işareti bulunan bir işlenen, tarih ve saatin görüntüleneceği biçimi belirten, kullanıcı tarafından tanımlanmış bir biçim dizesini gösterir. Biçim dizesi, strftime(3) kılavuz sayfasında açıklanan dönüşüm özelliklerinden herhangi birini, nanosaniyeler için ‘%N’ belirtecini ve herhangi bir rastgele metni içerebilir. Biçim dizesiyle belirtilen karakterlerden sonra her zaman bir yeni satır (‘\n’) karakteri çıktı olarak verilir. Varsayılan ekran için biçim dizesi “+%+” şeklindedir.

Bir işlenenin başında artı işareti yoksa, bu, sistemin geçerli tarih ve saat kavramını ayarlamak için bir değer olarak yorumlanır. Tarih ve saati ayarlamak için standart gösterim şudur:

cc Kısaltılmış yılın önüne eklenen yüzyıl (19 veya 20). yy Kısaltılmış biçimde yıl (örneğin, 1989 için 89, 2006 için 06). mm Sayısal ay, 1 ile 12 arasında bir sayı. dd Gün, 1 ile 31 arasında bir sayı. HH Saat, 0 ile 23 arasında bir sayı. MM Dakika, 0 ile 59 arasında bir sayı. SS Saniye, 0 ile 60 arasında bir sayı (59 artı potansiyel artık saniye).

Dakika dışındaki her şey isteğe bağlıdır.

date, /usr/share/zoneinfo adresinde bulunan IANA Saat Dilimi Veritabanı'ndaki (tzdata) saat dilimi tanımlarını anlar. Yaz Saati Uygulaması, standart saat, artık saniyeler ve artık yıllar için zaman değişiklikleri otomatik olarak işlenir.

Saat dilimini belirtmenin iki yolu vardır:

Eğer /etc/localtime dosyası veya sembolik bağı mevcutsa, bu bir saat dilimi tanımlama dosyası olarak yorumlanır ve genellikle tzdata'dan saat dilimi tanımlarını içeren /usr/share/zoneinfo dizin hiyerarşisinde bulunur.

Eğer TZ ortam değişkeni ayarlanmışsa, değeri bir saat dilimi tanımlama dosyasının adı olarak yorumlanır; bu dosya ya mutlak bir yol ya da /usr/share/zoneinfo içindeki bir saat dilimi tanımına göre göreceli bir yoldur. TZ değişkeni /etc/localtime dosyasını geçersiz kılar.

Saat dilimi tanımlama dosyası geçersizse, date sessizce UTC'ye geri döner.

date'in önceki sürümleri -d (yaz saati uygulaması bayrağını ayarla) ve -t (negatif saat dilimi sapmasını ayarla) seçeneklerini içeriyordu, ancak bu ayrıntılar artık tzdata tarafından otomatik olarak işlenmektedir. Modern sapmalar UTC'nin ilerisindeki saat dilimleri için pozitif, UTC'nin gerisindeki saat dilimleri için negatiftir, ancak kullanımdan kaldırılan -t seçeneği gibi, /usr/share/zoneinfo/Etc alt dizinindeki tzdata dosyaları hala UTC'nin ilerisindeki zamanların negatif olarak kabul edildiği daha eski bir geleneği kullanır.

Ortam

Aşağıdaki ortam değişkeni date'in çalışmasını etkiler:

TZ Tarihleri görüntülerken kullanılacak saat dilimi. Normal biçim, /usr/share/zoneinfo dizinine göre göreceli bir yol adıdır. Örneğin, “TZ=America/Los_Angeles date” komutu California'daki geçerli saati görüntüler. Değişken mutlak bir yol da belirtebilir. Daha fazla bilgi için environ(7) sayfasına bakın.

Dosyalar

/etc/localtime Varsayılan sistem saat dilimi için saat dilimi bilgi dosyası. Atlanabilir, bu durumda varsayılan saat dilimi UTC'dir. /usr/share/zoneinfo Saat dilimi bilgi dosyalarını içeren dizin. /var/log/messages Kullanıcının saati ayarlama kaydı.

Çıkış Durumu

date yardımcı programı başarı durumunda 0, tarihi ayarlayamadığında 1 ve yerel tarihi ayarlayabildiği halde küresel olarak ayarlayamadığında 2 ile çıkar.

Örnekler

     Şu komut:

	   date "+DATE: %Y-%m-%d%nTIME: %H:%M:%S"

     şunu görüntüleyecektir:

	   DATE: 1987-11-21
	   TIME: 13:36:16

     Europe/London saat diliminde, şu komut:

	   date -v1m -v+1y

     şunu görüntüleyecektir:

	   Sun Jan  4 04:15:24 GMT 1998

     burada geçerli zaman Mon Aug  4 04:15:24 BST 1997'dir.

     Şu komut:

	   date -v1d -v3m -v0y -v-1d

     2000 yılındaki Şubat ayının son gününü görüntüleyecektir:

	   Tue Feb 29 03:18:00 GMT 2000

     Şu komut da aynı sonucu verecektir:

	   date -v3m -v30d -v0y -v-1m

     çünkü Şubat ayının 30'u diye bir tarih yoktur.

     Şu komut:

	   date -v1d -v+1m -v-1d -v-fri

     ayın son Cuma gününü görüntüleyecektir:

	   Fri Aug 29 04:31:11 BST 1997

     burada geçerli zaman Mon Aug  4 04:31:11 BST 1997'dir.

     Şu komut:

	   date 0613162785

     tarihi “13 Haziran 1985, 16:27” olarak ayarlar.

	   date "+%m%d%H%M%Y.%S"

     bir makinede, diğerinde ayarlamaya uygun tarihi yazdırmak için kullanılabilir.

     Şu komut:

	   date 1432

     tarihi değiştirmeden saati 14:32 olarak ayarlar.

     Şu komut:

	   TZ=America/Los_Angeles date -Iseconds -r 1533415339

     şunu görüntüleyecektir:

	   2018-08-04T13:42:19-07:00

     Şu komut:

	   env LC_ALL=C date -j -f "%a %b %d %T %Z %Y" "`env LC_ALL=C date`" "+%s"

     date çıktısını ayrıştırmak ve Epoch zamanı cinsinden ifade etmek için kullanılabilir.

     Son olarak şu komut:

	   TZ=America/Los_Angeles date -z Europe/Paris -j 0900

     “America/Los_Angeles” saat diliminde saat 9:00 iken “Europe/Paris” saat dilimindeki saati yazdıracaktır.

Teşhisler

-I bayrağını -R veya bir çıktı biçimi (“+...”) işleneniyle birleştirmek geçersizdir. Bu gerçekleşirse, date şunu yazdırır: ‘multiple output formats specified’ ve 1 durumuyla çıkar.

Eski Sürüm Sinopsisi

İkinci satır hariç yukarıdaki gibidir; ikinci satır şöyledir:

date [-jnu] [[[[[cc]yy]mm]dd]HH]MM[.SS]

Eski mod hakkında daha fazla bilgi için compat(5) sayfasına bakın.

Ayrıca Bakınız

locale(1), clock_gettime(2), gettimeofday(2), getutxent(3), strftime(3), strptime(3), tzset(3)

R. Gusella ve S. Zatti, TSP: The Time Synchronization Protocol for UNIX 4.3BSD.

Time Zone Database, https://iana.org/time-zones.

Standartlar

date yardımcı programının IEEE Std 1003.2 (“POSIX.2”) ile uyumlu olması beklenmektedir. -u seçeneği haricinde tüm seçenekler standartlara yapılan uzantılardır.

-I bayrağı tarafından seçilen biçim ISO 8601 ile uyumludur.

Nanosaniyeler için ‘%N’ dönüşüm spesifikasyonu standart dışı bir uzantıdır. GNU date'in ‘%N’ belirteci ile uyumludur.

Geçmiş

Sürüm 1 AT&T UNIX'te bir date komutu ortaya çıktı.

DST bayrağını ayarlayan -d ve negatif saat dilimi sapmasını ayarlayan -t dahil olmak üzere bir dizi seçenek eklendi ve ardından tekrar kaldırıldı. Saat dilimleri artık tzdata ile birlikte sunulan kodla işlenmektedir.

-I bayrağı FreeBSD 12.0'da eklenmiştir.

‘%N’ dönüşüm spesifikasyonu FreeBSD 14.1'de eklenmiştir.

macOS 26.4 10 Eylül 2024 macOS 26.4