Diberi tanggal dan waktu dalam format yang tidak dikenali oleh date
, bagaimana saya bisa date
mengenali tanggal dan waktu?
Sebagai contoh:
$ date -d "09SEP2012:23:58:46"
date: invalid date `09SEP2012:23:58:46'
$ date -d "09SEP2012:23:58:46" --magic-option "ddMMMYYY:hh:mm:ss"
Sun Sep 9 23:58:46 MDT 2012
Apakah --magic-option
ada Jika tidak, apakah ada cara yang lebih elegan untuk menyelesaikan ini daripada menggunakan sed
untuk mengubah input menjadi string tanggal yang terbentuk dengan baik?
Jawaban:
Tidak ada tanggal POSIX maupun GNU
--magic-option
. FreeBSD menyebutnya-f
(dengan sintaksis yang mirip dengandate
penentu format output, bukan yang Anda usulkan).Tanggal Anda sangat dekat untuk dikenali oleh tanggal GNU: yang diperlukan hanyalah mengganti titik dua yang memisahkan tanggal dari waktu dengan spasi.
sumber
01/02/03
.Saya menulis banyak alat ( dateutils ) yang menangani tanggal dan waktu dengan cara yang lebih ramah terhadap skrip. Opsi ajaib Anda ada
--input-format|-i
, misalnya:Meskipun
dconv
tidak secara langsung mendukungdate
format output (tidak memberikanTZ
atau apa pun di lingkungan), ada alatstrptime
di dateutils yang mendukung penentu%Z
format.sumber