我需要使用从程序中获取的字符串来设置 Linux 机器的日期。此字符串的格式为 ddmmyy。是否可以直接使用它,还是需要先重新格式化?
目前我已尝试以下操作但没有任何成功:
date +%d%m%y -s "071012"
这应该是 2012 年 10 月 7 日但它被反向解释然后变成了 12. Oct 07.
如果我尝试告诉日期使用反向格式:
date +%y%m%d -s "071012"
它仍然会将其读为 12. Oct 07. 我宁愿不反转字符串,因为我认为日期可以解决这个问题。
答案1
设置+
输出仅格式。如果您想使用该选项,则需要预先格式化字符串-s
(通过修改程序或使用例如sed
)。
对于您来说,您可以通过以下方式传输程序的结果:
sed -e "s/\(..\)\(..\)\(..\)/\\3\\2\\1/"
答案2
将日期存储在 shell 变量中,您可以像这样设置日期:
dt=`your_program`
date -s "${dt:4:2}${dt:2:2}${dt:0:2}"