Vấn đề là thời gian tiết kiệm ánh sáng ban ngày đã thay đổi và chuyển tiếp 1 giờ, vào ngày 16 tháng 10 năm 2016 trong múi giờ của bạn:
$ zdump -v America/Sao_Paulo | awk '/Oct 16/ && /2016/'
America/Sao_Paulo Sun Oct 16 02:59:59 2016 UTC = Sat Oct 15 23:59:59 2016 BRT isdst=0
America/Sao_Paulo Sun Oct 16 03:00:00 2016 UTC = Sun Oct 16 01:00:00 2016 BRST isdst=1
Vì vậy, bất kỳ thời gian nào từ giữa 00:00
đến 00:59
ngày đó đều được coi là không hợp lệ trong múi giờ của bạn (nhưng có thể hợp lệ ở những người khác):
$ TZ=America/Sao_Paulo gdate -d '2016-10-16 0:59'
gdate: invalid date ‘2016-10-16 0:59’
$ TZ=Asia/Ho_Chi_Minh gdate -d '2016-10-16 0:59'
Sun Oct 16 00:59:00 ICT 2016
Bạn có thể đặt thời gian bổ sung, không nằm trong phạm vi đó:
$ TZ=America/Sao_Paulo gdate -d '2016-10-16 1:00'
Sun Oct 16 01:00:00 BRST 2016
Trên đây là hành vi ngày GNU.
Ngày BSD không có vấn đề này. Nếu ngày đầu vào không hợp lệ trong múi giờ, nó sẽ được điều chỉnh âm thầm trong 1 giờ cho đến khi đạt đến thời gian hợp lệ:
$ TZ=America/Sao_Paulo date -j -f '%Y%m%d%H%M' 201610160000
Sun Oct 16 01:00:53 BRST 2016
locale
s:sv_SE.utf8
vàen_us.utf-8
.