将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/yyyy
或yyyy-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 }