我想使用busybox 的date
命令(BusyBox v1.21.0)设置日期。我想设置计算机的自定义日期是这种形式:
Tue, 15 Jan 2019 10:46:13 GMT
Run Code Online (Sandbox Code Playgroud)
我的date
命令能够使用以下字符串以相同的格式打印日期:
date +"%a, %d %b %Y %T %Z"
它以与上述完全相同的格式返回日期。但是当我使用-s
选项设置日期时,它不会接受这一点。
这失败例如:
date -u +"%a, %d %b %Y %T %Z" -s "Wed, 17 Feb 2010 19:14:32 UTC"
date: invalid date 'Wed, 17 Feb 2010 19:14:32 UTC'
Run Code Online (Sandbox Code Playgroud)
我知道busybox命令在功能上有所减少,但我想象当它可以处理格式字符串以所需形式打印当前日期时,它也应该能够使用它来解释输入字符串。
您可以让 busybox date 为您进行格式转换,用于-D
指定输入格式,以及通常的+...
输出格式,并-d
提供参考日期和时间。例如,
r='Tue, 15 Jan 2019 09:16:53 GMT'
d=$(busybox date -d "$r" -D "%a, %d %b %Y %T %Z" +'%Y-%m-%d %H:%M:%S')
# d becomes 2019-01-15 09:01:53
busybox date -s "$d"
Run Code Online (Sandbox Code Playgroud)
busyboxdate
只接受非常特定的时间格式,而不是任意的时间格式。
$ busybox date --help
[...]
[-s,--set] TIME Set time to TIME
[...]
Recognized TIME formats:
hh:mm[:ss]
[YYYY.]MM.DD-hh:mm[:ss]
YYYY-MM-DD hh:mm[:ss]
[[[[[YY]YY]MM]DD]hh]mm[.ss]
'date TIME' form accepts MMDDhhmm[[YY]YY][.ss] instead
Run Code Online (Sandbox Code Playgroud)
所以你只需要这样写date -s 2010.02.17-19:14:32
(或任何你喜欢的格式)。
归档时间: |
|
查看次数: |
12527 次 |
最近记录: |