Tue Sep 13 09:56:58 CST 2016

获取特定以特定格式(date + ‘format’,注意格式的大小写表示了不同格式)

-bash-4.1$ date +'%Y-%m-%d'
2016-09-13
-bash-4.1$ date +'%Y%m%d%H'
2016091309

获取昨天的日期(其中表示格式的”+’%Y-%m-%d’ “可在-d前或后面)

-bash-4.1$ date -d 'yesterday' +'%Y-%m-%d'
2016-09-12
-bash-4.1$ date -d 'today -1 day' +'%Y-%m-%d'
2016-09-12

获取当前时间的前一个小时

-bash-4.1$ date -d 'today -1 hour' +'%Y%m%d%H'
2016091309
-bash-4.1$ date +%Y-%m-%d\ \%H:00:00 -d '-1 hours'
2016-09-13 09:00:00

获取指定日期前一天(例如经常在调度脚本中获取传入日期,然后再取前几天)

-bash-4.1$ date -d '20160909 -1 day' +'%Y%m%d'
20160908

将日期转换为时间戳

-bash-4.1$ date -d "2016-09-09 04:00:00" +%s
1473364800

将时间戳转换回日期

-bash-4.1$ date -d @1473364800
Fri Sep  9 04:00:00 CST 2016

将时间戳转换为日期,并按特定格式

-bash-4.1$ date -d @1473364800 +'%Y%m%d%H'
2016090904

将含有yyyy-MM-dd转为yyyyMMdd,可以直接使用sed替换

-bash-4.1$ echo "2016-09-09" | sed 's/-//g'
20160909
在脚本中可以使用(注意需要``符号)
date=`echo "2016-09-09" | sed 's/-//g'`
linux shell 获取昨天、明天或多天前的 日期 : 在 Linux 对man date -d 参数说的比较模糊,以下举例进一步说明: # -d, --date=STRING display time described by STRING, not `now’ [root@Gman root]# date -d next-day +%Y%m%d #明天 日期 20091024 [root
Linux Shell 日期 格式 ,你知道几种? 不管是哪种语言, 日期 /时间都是一个非常重要的值。比如我们保存日志的时候,往往是某个前缀再加上当前时间,这样日志文件名称就可以做到唯一。 在 Shell 环境里,我们获取时间的命令是date,但date出来的时间 日期 格式 、内容可能不是我们所想要的,所以我们可能需要对它进行一些 格式 化输出。 常用的时间域如下: % Y 年(例如:1970,2018等) % m 月(01..12) % d 一个月的第几天(01..31) % H 小时(00..23) % M 分(00.
date -d yesterday '+%Y%m%d'  以 yyyymm dd 格式 显示昨天 日期 date -d today '+%Y%m%d'        以 yyyymm dd 格式 显示当天 日期 date -d tomarrow '+%Y%m%d'   以 yyyymm dd 格式 显示明天 日期
法1:from_unixtime+ unix_timestamp/这个试了没成功 –20171205转成2017-12-05 select from_unixtime(unix_timestamp(‘20171205’,‘ yyyymm dd’),‘yyyy-mm-dd’) from dual; –2017-12-05转成20171205 select from_unixtime(unix_timestamp(‘2017-12-05’,‘yyyy-mm-dd’),‘ yyyymm dd’) from dual;