我在许多堆栈交换网站和各种其他教程网站上都遵循了有关如何进行日期数学的示例。我已经尝试过 linux(在容器上)我得到了完全相同的错误:
$ docker run -it bash date -d '2014-11-19T15:40:30+10d'
date: invalid date '2014-11-19T15:40:30+10d'
bash-5.0# date -d '+10 days'
date: invalid date '+10 days'
bash-5.0# date -d '+10 d'
date: invalid date '+10 d'
bash-5.0# date -d '2014-11-19T15:40:30+10 d'
date: invalid date '2014-11-19T15:40:30+10 d'
bash-5.0# date -d '2014-11-19T15:40:30+10 days'
date: invalid date '2014-11-19T15:40:30+10 days'
bash-5.0# date -d '2014-11-19T15:40:30 +10 days'
date: invalid date '2014-11-19T15:40:30 +10 days'
bash-5.0# date -d '2014-11-19T15:40:30 +10 d'
date: invalid date '2014-11-19T15:40:30 +10 d'
bash 版本:
$ docker run -it bash bash --version
GNU bash, version 5.0.2(1)-release (x86_64-pc-linux-musl)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
他们不可能都是错的。
您使用的 BusyBox 版本
date
与大多数桌面 Linux 发行版上的 Coreutils 版本不完全兼容。引用 BusyBox 的手册页:您可能的选择是:
-D
键(例如busybox date -D +10days
),它扩展了对时间表达式的支持,类似于 Coreutilsdate -d
所具有的。请注意,该选项不会被 Coreutils 识别date
。