Zaman damgasını gg / aa / yyyy_hh: mm: ss: ms olarak Unix veya Linux olarak görüntüleme


26

Tarih ve saati Unix / Linux'ta istenen biçimde görüntülemem gerekiyor. İstediğim format: dd / mm / yyyy ss: dd: ss: ms. Aşağıdaki komutu kullanarak yaklaştım:

echo $(date +%x_%r)

Bu döner:

08/20/2012_02:26:14 PM

Baska öneri?


2
Kullanmanızın bir nedeni var mı echo? Gereksiz görünüyor, sadece datedoğrudan kullanabilirsiniz
lk

Geçerli zamanı bir parametrede saklamayı ve bir çıktı dosyası adının bir parçası olarak kullanmayı planlıyorum.
Hank,

6
Neden bir ISO formatlı tarih dizesi kullanmıyorsunuz? Bunlar / dosya adlarında iyi değiller ... ( en.wikipedia.org/wiki/ISO_8601 )
Johan

Bu bağlantıya bakınız: ccollins.wordpress.com/2009/01/06/… .

En yaygın formatlar: zxq9.com/archives/795
zxq9 13.08.2018

Yanıtlar:


26
date +%x_%H:%M:%S:%N

ms olarak yalnızca iki ilk sayıyı yazdırmanız gerekirse:

date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/'

var içinde saklamak için:

VAR=$(date +%x_%H:%M:%S:%N | sed 's/\(:[0-9][0-9]\)[0-9]*$/\1/')

1
Bu Linux'a özgüdür; OS X veya * BSD'de çalışmaz.
Ağustos’ta

% X, yerel ayarın tarih gösterimini döndürür. Böylece mevcut yerel ayara göre değişebilir. Belirli bir tarih biçimini istiyorsanız, açıkça belirtmeden daha iyi olursunuz (diğer cevaplar da aşağıda gösterildiği gibi) date +'%d/%m/%Y_%H:%M:%S:%N.
studgeek

23

Nanosaniye hassasiyet yerine milisaniye istiyorsan, %3Nyerine şunu kullanabilirsin %N:

$ date +'%d/%m/%Y %H:%M:%S:%3N'
12/04/2014 18:36:20:659

veya istediğiniz kullanımda $(…):

$ echo "$(date +'%d/%m/%Y %H:%M:%S:%3N')"
12/04/2014 18:36:20:659

Ancak bunun %Nhedef sisteminize veya bash sürümünüze bağlı olarak uygulanmayabileceğini unutmayın. Gömülü bir sistemde test edildi »GNU bash, sürüm 4.2.37 (2) - yayınlanma (arm-buildroot-linux-gnueabi)«, hiçbiri %N(hiçbiri %3N):

date +"%F %T,%N"
2014-01-08 16:44:47,%N

2
FreeBsd'nin veya Mac Osx'in desteklemediğini %Nveya %3N.
Joe,

Ekledim echo "$(date +'%F %H:%M:%S:%3N') Failed" >> logfile.txt, ancak file.file 08:21:02OURCE:184 Failedgünlük dosyasına yazdı . Neyi yanlış yaptım?
Sven,

MacOS üzerinde olmadığını mı gdateHomebrew içinde apple.stackexchange.com/a/135749/181223
Phil Pirozhkov


0

Böyle bir şey

tarih + '% d /% m /% Y_% H:% M:% S:% N'

Şu anda milisaniye bulamadığımdan beri nanosaniye için% N (000000000..999999999) kullandı


0

Deneyebilirsin:

echo `date +"%Y_%m_%d %H:%M:%S,"``date +%N/1000000|bc -l|grep -Eo "^([0-9]{0,3})"`

Bir nedenden dolayı '' 'ihmal edilir, bu yüzden yankıdan ve sondan sonra koyun ya da basitçe:

date +"[%Y_%m_%d %H:%M:%S,%3N]"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.