Linux v2.4 / Bash v3.2 / GNU utils / date命令5.0版
我正在努力使用date命令。在BASH应用程序中,用户可以单独设置日期和时间,从而为日期和时间生成单独的变量。此外,这些变量被重新组合,但这似乎不适合日期命令:我得到一个不同的日期。然而,时间是一样的。测试代码:
#!/bin/bash
dnow1="$(date)"
echo "1 $dnow1" # --> Sat Sep 14 16:31:48 EDT 2013
#split date and time
dldate="$(date -d "$dnow1" +"%d-%m-%Y")"
echo "2 $dldate" # --> 14-09-2013
dltime="$(date -d "$dnow1" +"%H:%M:%S")"
echo "3 $dltime" # --> 16:31:48
#try to re-combine date and time
string="${dldate} ${dltime}"
echo "4 $string" # --> 14-09-2013 16:31:48
dnow2="$(date -d "$string")"
echo "5 $dnow2" # --> Thu Mar 5 16:31:48 EST 2020
我必须在这里遗漏一些东西。任何人都可以开导我吗?谢谢!
注意: 我正在使用原始XBOX,它具有很少/较少的资源,因此没有其他解决方案如Python的空间。无论如何我都是'bashist'所以它必须是BASH!
编辑:更正的时间格式。谢谢你。 至于“$(....)”我已经养成了尽可能双引号的习惯。
答案 0 :(得分:1)
获取日期时请改用此格式:
#split date and time
dldate="$(date -d "$dnow1" +"%Y-%m-%d")"
答案 1 :(得分:0)
首先使用-d
无法以14-09-2013
方式工作,您可以使用一个命令轻松设置日期和时间并将其置于变量中。 例如,只需在shell上尝试以下内容,然后就可以放入shell脚本。
date --date="Feb 2 2014 13:12:10"
Sun Feb 2 13:12:10 PST 2014
答案 2 :(得分:0)
日期命令的输出并不总是可以接受为日期字符串,这不仅是因为语言问题,还因为“IST”等时区项目没有标准含义。使用date生成要在以后解析的日期字符串时,请指定独立于语言的日期格式,并且不使用“UTC”和“Z”以外的时区项目。