Hari ini jam saya secara otomatis disesuaikan dengan waktu musim panas, dan skrip dari crontab mulai gagal. Saya telah melihat apa yang terjadi, dan kesalahan berikut ditampilkan, dengan LC_ALL=C
:
tanggal: tanggal tidak valid '2016-10-16'
Saya pikir itu akan lebih baik hanya untuk reboot sistem, tetapi sekarang saya telah reboot, dan kesalahan masih muncul:
$ date -d '2016-10-15'
Sat Oct 15 00:00:00 BRT 2016
$ date -d '2016-10-16'
date: data inválida “2016-10-16”
$ date -d '2016-10-17'
Mon Oct 17 00:00:00 BRST 2016
Apa yang menyebabkan ini?
locale
s berbeda :sv_SE.utf8
danen_us.utf-8
.Jawaban:
Masalahnya adalah waktu musim panas berubah dan diteruskan 1 jam, pada 16 Oktober 2016 di zona waktu Anda:
Jadi, setiap waktu antara
00:00
hingga00:59
pada hari itu dianggap tidak valid di zona waktu Anda (tapi mungkin berlaku di tempat lain):Anda dapat mengatur waktu tambahan, yang tidak ada dalam rentang itu:
Di atas adalah perilaku tanggal GNU.
Tanggal BSD tidak memiliki masalah ini. Jika tanggal input tidak valid di zona waktu, itu akan disesuaikan secara diam-diam ke depan 1 jam sampai mencapai waktu yang valid:
sumber