我正在尝试将存储在变量中的日期转换为unix时间戳。我有值,我必须提供此值的格式(“%m%d%Y”)然后转换它(“%s”)。你能给我一个提示吗?
>initial_date=02012014
>date_2_unixtime=`date +"%m%d%Y" -d $initial_date +"%s"`
date: extra operand `+%s'
Try `date --help' for more information.
谢谢
答案 0 :(得分:0)
您的日期位于mmddyyyy
,需要yyymmdd
date
来解释。此外,您不提供输入日期格式到日期命令。格式仅供显示。
以这种方式使用:
initial_date=02012014
dt="${initial_date:4}${initial_date:0:4}"
date +"%s" -d "$dt"
1391230800
答案 1 :(得分:0)
问题是,您必须将initial_date转换为date
识别的格式。
02012014
不是其中之一。
kent$ date -d "02012014"
date: invalid date ‘02012014’
如果你喜欢单行,你可以尝试:
date -d $(sed -r 's#(..)(..)(....)#\1/\2/\3#' <<<$initial_date) +%s
1391209200