是否可以更改存储在shell变量中的日期格式?

时间:2014-06-23 10:32:46

标签: oracle bash shell

所以我使用命令从我的数据库中获取日期。

date1=$(sqlplus -s $1/$2@$3 <<EOF
set heading OFF termout ON trimout ON feedback OFF
set pagesize 0
select DATE from data_table where type='B_DATE';
exit;
EOF)

回显日期会给出以下值。

02-JUN-14   12.30.00.000000 PM

当我尝试使用

更改此日期的格式时
bdate=$(date -d "$date1" +"%A %d-%m-%Y")

我收到错误

date: invalid date `02-JUN-14 12.30.00.000000 PM'

任何人都可以解释我做错了什么以及如何纠正它?

1 个答案:

答案 0 :(得分:2)

您必须将.替换为:

date='02-JUN-14 12.30.00.000000 PM'; date=$(echo "$date" | sed -re 's/([0-9]+)\.([0-9]+)\.([0-9]+)/\1:\2:\3/'); echo $date;date -d "$date" +"%A %d-%m-%Y"
02-JUN-14 12:30:00.000000 PM
Monday 02-06-2014

看看我是如何使用sed。

转换日期格式的