Bagaimana saya bisa menggunakan perintah tanggal untuk mengubah sesuatu seperti "Senin minggu 40" menjadi tanggal ISO?
Saya bermain dengan sesuatu seperti ini:
date --date='monday week 40' +'%Y-%m-%d'
Dan tanggal yang saya cari adalah 2011-10-03.
Tetapi masalah saya adalah bahwa string tanggal ini tidak valid, jadi saya perlu pendekatan lain untuk menyelesaikan masalah ini.
/Terima kasih
%V
Urutan format yang digunakan oleh 'pengguna tidak diketahui' melaporkan angka minggu ISO.Jawaban:
Sangat jelek dan mungkin hanya berfungsi dengan GNU
date
:Diuji hanya untuk contoh 3 Oktober Anda, mungkin gagal untuk beberapa kasus lain.
Pembaruan : Jika Anda memiliki lokal non eng Anda perlu menentukan output dari tanggal batin untuk mulai bekerja. (Dan% F adalah YYYY-MM-DD).
sumber
Pendekatan alternatif:
sumber
date +%V
kembali41
), maka nilai--date
parameter akan menjadi+-1weeks last monday
, yang sebenarnya dua minggu yang lalu, bukan 7 hari yang lalu.date -d 'last monday'
. Itu akan kembali kemarin. Menurut Anda apa yang akan dikatakan jika Anda menjalankannya kemarin?Oke, ini usahaku. Ini mencuri ide dari jawaban lain, dan upaya untuk membuat logika lebih mudah diikuti. Ini didasarkan pada sistem ISO 8601, jadi itu tidak benar jika Anda tinggal di negara-negara seperti Amerika Serikat atau Kanada, tetapi harus mudah disesuaikan untuk negara-negara tersebut.
sumber