2015-06-20 184 views
2

我需要在bash中将包含小时的字符串转换为日期,例如:2012-02-09-18,并将结果存储在变量中,以便我可以比较这些字符串作为日期。如果我用于转换Bash - 将字符串转换为日期

date -d "2012-02-09-18" 

它会崩溃并显示“无效的日期错误”。我怎样才能做到这一点?

+0

看一看: http://stackoverflow.com/questions/11144408/convert-string-to-date-in-bash –

+1

什么是期望的输出?因为不清楚你是否想要删除小时 – fedorqui

回答

3

你可以调整输入使用sed,使其可解析由date

str='2012-02-09-18' 

date -d "$(sed 's/-\([^-]*\)$/ \1/' <<< "$str")" 
Thu Feb 9 18:00:00 EST 2012 
4

与试试这个bash的parameter expansion

a="2012-02-09-18" 
date -d "${a%-*} ${a#*-*-*-*}" 

输出:

 
Thu Feb 9 18:00:00 CET 2012