Ini akan memberi Anda tanggal dalam hitungan detik (sejak zaman UNIX)
date --date '2017-08-17 04:00:01' +%s # "1502938801"
Dan ini akan memberi Anda tanggal sebagai string yang dapat dibaca dari beberapa detik
date --date '@1502938801' # "17 Aug 2017 04:00:01"
Jadi yang diperlukan hanyalah mengubah tanggal/stempel waktu Anda menjadi format yang GNU date
dapat memahami, menggunakan matematika untuk menentukan perbedaan, dan menampilkan hasilnya
datetime1=20170817040001
datetime2=20160312000101
seconds1=$(date --date "$(echo "$datetime1" | sed -nr 's/(....)(..)(..)(..)(..)(..)/\1-\2-\3 \4:\5:\6/p')" +%s)
seconds2=$(date --date "$(echo "$datetime2" | sed -nr 's/(....)(..)(..)(..)(..)(..)/\1-\2-\3 \4:\5:\6/p')" +%s)
delta=$((seconds1 - seconds2))
echo "$delta seconds" # "45197940 seconds"
Kami tidak menyediakan informasi zona waktu di sini, sehingga diasumsikan zona waktu lokal. Nilai Anda untuk detik dari datetime mungkin akan berbeda dengan milik saya. (Jika nilai Anda UTC maka Anda dapat menggunakan date --utc
.)
Ini mudah dengan datediff
perintah yang disediakan di dateutils
kemasan.
ddiff -i '%Y%m%d%H%M%S' 20170817040001 20160312000101
Mengapa `make clean` dan `make mrproper` keduanya digunakan?
Dapatkan lebih dari 2 GB batas membuat PDF dengan ImageMagick