将输入时间戳从ist转换为utc(UNIX)

时间:2014-05-15 10:18:34

标签: shell unix scripting

我将日期作为输入参数从某些来源获取IST,但我必须将其转换为UTC格式,即我必须将5小时30分钟减去我收到的日期。

echo "Date format DD/MM/YYYY HH:SS"
read $input

我可以写这个小函数,它将从$input grep HH和SS然后添加哪些检查条件这是繁琐的任务,相反我想知道有没有办法做到这一点? 我找到了date命令选项,其工作原理如下:

date -d "15/05/2014 10:12 -5 hours -30 minutes" 不工作 date -d "15/05/2014 10:12 5 hours ago 30 minutes ago"也无效。

1 个答案:

答案 0 :(得分:0)

假设您在$date变量中获得了IST日期,您可以执行此操作以获取GMT日期:

date="15/05/2014 10:15"

第一步是将dd/mm/yyyy日期转换为mm/dd/yyyy

date=$(awk 'BEGIN{FS=OFS="/"} {print $2, $1, $3}' <<< "$date")

转换为GMT:

( export TZ='GMT' && date -d 'TZ="Asia/Kolkata" '"$date" )
Thu May 15 04:45:00 GMT 2014

获得EPOCH GMT值:

( export TZ='GMT' && date -d 'TZ="Asia/Kolkata" '"$date" '+%s' )
1400129100