将日期字符串转换为纪元时间

时间:2016-03-25 07:17:10

标签: shell epoch

我有一个字符串'2015_11_01_00_00'我想将此转换为纪元时间。 我已经尝试了以下代码,但找不到它的价值。

#!/bin/bash

echo "mohit"

date_var="2015_11_01_00_00"

echo $date_var

arr=$(echo $date_var | tr "_" "\n")

IFS='_ ' read -r -a arr <<< "$date_var"
#echo $arr
echo ${arr[0]}
echo ${arr[1]}
echo ${arr[2]}
echo ${arr[3]}
echo ${arr[4]}

updated_date="${arr[0]}"-"${arr[1]}"-"${arr[2]}"-"${arr[3]}"-"${arr[4]}"
echo $updated_date

TMRW_DATE=`date --date="$updated_date" +"%s"`
echo "$TMRW_DATE"

2 个答案:

答案 0 :(得分:1)

这个应该可以解决问题:

#!/bin/bash

echo "mohit"

date_var="2015_11_01_00_00"

updated_date=`echo ${date_var} | sed -e 's,_,/,;s,_,/,;s,_, ,;s/_/:/'`
echo ${updated_date}

TMRW_DATE=`date -d "$updated_date" +"%s"`
echo "$TMRW_DATE"

答案 1 :(得分:1)

以下是使用GNU date syntax

执行此操作的一种方法
#!/bin/bash
echo "mohit"
date_var="2015_11_01_00_00"

TMRW_DATE=$(
    set -- $(echo $date_var | tr "_" " ")
    date --date="$1-$2-$3 $4:$5" +"%s"
)

echo "$TMRW_DATE"

这适用于OS X date implementation

#!/bin/bash
echo "mohit"

date_var="2015_11_01_00_00"
TMRW_DATE=$(date -j -f "%Y_%m_%d_%H_%M" "$date_var" +%s)

echo "$TMRW_DATE"