Bagaimana cara mengonversi cap waktu zaman ke format yang dapat dibaca manusia di cli? Saya pikir ada cara untuk melakukannya dengan tanggal tetapi sintaks menghindari saya (cara lain selamat datang).
command-line
shell
date
xenoterracide
sumber
sumber
@
artinya inidate -d @1234567890
?man date
tidak menyebutinfo date
cukup lengkap. Entri di28.9 Seconds since the Epoch
menjelaskan secara terperinci tentang @timestamp.date -d @1190000000
Ganti 1190000000 dengan zaman Andasumber
Ini bisa berguna untuk aplikasi-aplikasi yang menggunakan waktu jaman di file log:
sumber
Format khusus dengan GNU
date
:Atau dengan GNU
awk
:Pertanyaan SO yang ditautkan: https://stackoverflow.com/questions/3249827/convert-from-unixtime-at-command-line
sumber
Dengan
bash-4.2
atau di atas:(di mana
%F %T
adalahstrftime()
format yang -type)Sintaksis itu diilhami dari
ksh93
.Dalam
ksh93
Namun, argumen yang diambil sebagai ekspresi tanggal di mana berbagai dan hampir tidak didokumentasikan format yang didukung.Untuk waktu Unix, sintaks dalam
ksh93
adalah:ksh93
Namun tampaknya menggunakan algoritma sendiri untuk zona waktu dan bisa salah. Misalnya, di Inggris, itu musim panas sepanjang tahun di tahun 1970, tetapi:sumber
Jika waktu Anda dalam milidetik alih-alih detik, hapus tiga digit terakhir sebelum meneruskannya ke
date -d
:Ini memberikan data yang salah. Hapus tiga digit terakhir.
sumber
Dua yang sering saya gunakan adalah:
dan
sumber
Dengan
zsh
Anda bisa menggunakanstrftime
builtin:misalnya
Ada juga
dateconv
daridateutils
:ingat selalu
dateutils
alat bawaan untukUTC
(tambahkan-z your/timezone
jika perlu).sumber
Anda juga bisa menggunakan program C kecil untuk mencetak datetime dalam format yang dapat langsung diuraikan oleh shell
pemakaian:
sumber
Tidak akan menjadi solusi nyata tanpa node.js kecil:
tambahkan itu ke
~/.bash_aliases
dan pastikan bersumber~/.bashrc
dengan. ~/.bash_aliases
Untuk mendapatkan node di sistem Anda goto http://nvm.sh dan jalankan perintah curl. Ini akan menginstal manajer versi simpul (nvm) yang memungkinkan Anda untuk beralih versi simpul.
Cukup ketik
nvm ls-remote
dan pilih satu versinvm install <version>
.sumber
Ada cara yang lebih mudah untuk melakukan ini: (([System.DateTimeOffset] :: FromUnixTimeMilliSeconds ($ unixtime)). DateTime) .ToString ("s")
sumber