将date时间string转换为bash命令中的UNIX时间戳

date时间string采用以下格式:06/12/2012 07:21:22。 我怎样才能把它转换成UNIX时间戳?

你要找的是date --date='06/12/2012 07:21:22' +"%s" 。 请记住,这假设你使用GNU coreutils,因为--date%s格式string都是GNU扩展名。 POSIX并没有指定其中的任何一个,所以即使在符合POSIX标准的系统上也没有可移植的方式进行这种转换。

请查阅相应的手册页以获取其他版本的date

注意:bash --date-d选项预计date为美国或ISO8601格式,即mm/dd/yyyyyyyy-mm-dd ,不在英国,欧盟或任何其他格式。

对于Linux运行此命令

 date -d '06/12/2012 07:21:22' +"%s" 

对于mac OSX运行这个命令

 date -j -u -f "%a %b %d %T %Z %Y" "Tue Sep 28 19:35:15 EDT 2010" "+%s" 
 get_curr_date () { # get unix time DATE=$(date +%s) echo "DATE_CURR : "$DATE } conv_utime_hread () { # convert unix time to human readable format DATE_HREAD=$(date -d @$DATE +%Y%m%d_%H%M%S) echo "DATE_HREAD : "$DATE_HREAD }