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

v440hwme  于 2023-01-31  发布在  Shell
关注(0)|答案(3)|浏览(181)

我有一个字符串'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"
wqnecbli

wqnecbli1#

这一个应该可以做到:

#!/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"
tgabmvqs

tgabmvqs2#

下面是一种方法,使用GNU日期语法:

#!/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"
xfyts7mz

xfyts7mz3#

我试图通过以下操作对postgres sql执行相同的操作,这会产生错误

SELECT *, DATEDIFF(ss, '1970-01-01T00:00:00.000', punch_time) as EpochSeconds
FROM attendance

但遵循代码确实对我有用

SELECT EXTRACT(EPOCH FROM punch_time) as EpochTime
FROM attendance;

相关问题