添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
闷骚的弓箭  ·  Python求助:34, ...·  1 年前    · 
机灵的草稿本  ·  css animation ...·  1 年前    · 

Shell脚本获取格式化日期与时间总结,Linux的bash脚本对时间格式的支持超出了我的预想,支持多种格式的变化与输出。甚至比java的api还要方便,总结如下:

1、常用的取日期方法:

#!/bin/sh
# upload logs to hdfs
source /etc/profile
#获取昨天日期 yyyyMMdd 格式
yesterday=`date --date='1 days ago' +%Y%m%d`
#获取昨天日期 yyyy-MM-dd 格式
yesterday2=`date --date='1 days ago' +%Y-%m-%d`
#获取今天日期 yyyyMMdd 格式
today=`date --date='0 days ago' +%Y%m%d`
#获取今天日期 yyyy-MM-dd 格式
today2=`date --date='0 days ago' +%Y-%m-%d`
#获取明天日期 yyyyMMdd 格式
today=`date --date='1 days' +%Y%m%d`
#获取明天日期 yyyy-MM-dd 格式
today2=`date --date='1 days' +%Y-%m-%d`
#获取当前时间 yyyy-MM-dd HH:mm:ss 格式
nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
#获取当前日间 HH:mm:ss 格式
nowtime2=`date --date='0 days ago' +%H:%M:%S`
#获取1小时前时间 yyyy-MM-dd HH:mm:ss 格式
onehourage=`date --date='1 hours ago' "+%Y-%m-%d %H:%M:%S"`
#获取1小时后时间 yyyy-MM-dd HH:mm:ss 格式
onehourage2=`date --date='1 hours' "+%Y-%m-%d %H:%M:%S"`
#获取2小时前时间 yyyy-MM-dd HH:mm:ss 格式
twohourage=`date --date='2 hours ago' "+%Y-%m-%d %H:%M:%S"`
#获取2小时后时间 yyyy-MM-dd HH:mm:ss 格式
twohourage2=`date --date='2 hours' "+%Y-%m-%d %H:%M:%S"`
#获取1个月前时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月加1天前时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago + 1 day ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月减1天前时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago - 1 day ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月加1天加1小时加1分钟加1秒钟前时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago + 1 day ago + 1 hour ago + 1 min ago + 1 sec ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月加1天减1小时减1分钟减1秒钟前时间 yyyy-MM-dd HH:mm:ss 格式  可以 + - 滥用
date --date='1 month ago + 1 day ago - 1 hour ago - 1 min ago - 1 sec ago' "+%Y-%m-%d %H:%M:%S"
#获取1个月加1天加1小时加1分钟加1秒钟后时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month + 1 day  + 1 hour  + 1 min  + 1 sec ' "+%Y-%m-%d %H:%M:%S"
#获取1个月加1天减1小时减1分钟减1秒钟后时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month + 1 day  - 1 hour  - 1 min  - 1 sec ' "+%Y-%m-%d %H:%M:%S"
#获取1年后1个月加1天减1小时减1分钟减1秒钟后时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 year 1 month + 1 day  - 1 hour  - 1 min  - 1 sec ' "+%Y-%m-%d %H:%M:%S"
#获取1年前1个月加1天减1小时减1分钟减1秒钟后时间 yyyy-MM-dd HH:mm:ss 格式
date --date='1 year 1 month + 1 day  - 1 hour  - 1 min  - 1 sec ' "+%Y-%m-%d %H:%M:%S"
date --date="0 days ago" "+%Y-%m-%d %u"
date -d "`awk -F- '$2%3==1{print $1FS$2FS"01";next}$2%3==2{print $1FS$2-1FS"01";next}{print $1FS$2-2FS"01"}' <<<2014-1-07`" +%F
date -d "`awk -F- '$2%3==1{print $1FS$2+3FS"01";next}$2%3==2{print $1FS$2+2FS"01";next}{print $1FS$2+1FS"01"}' <<<2014-1-07` -1 day" +%F

3、循环取日期
#! /bin/sh
today=$2
enddate=$1
while [[ $today -ge $enddate  ]]
        echo ${today}
	today2=`date -d "0 day $today" +%Y-%m-%d`
	echo ${today2}	
	###  to do this	
	today=`date -d "-1 day $today" +%Y%m%d`
调用方式:
bash testFor.sh  20150507 20160225


说明:to do 放需循环调用的代码或者脚本 # 等号两边不能有空格,之前错误一直出在这里 yesterday=`date -d yesterday +%Y-%m-%d` echo 'yesterday : ' $yesterday printf 'yesterday is %s' $yesterday # 前一天的 日期 date1=$(date -d "-1 day " +%Y-%m-%d) echo '前一天:'$date1 # 前两天的 日期 date2=$(date -d "-2 day " +%Y-%
bash 脚本 改进 上次的博客强行传递的参数为20200101 20200131 这样的不跨月的参数,在使用中还是很不方便. 如果想跨月呢?这就需要涉及bash中 时间 格式化 的知识点了. 1, 时间 格式化 关于概念性的东西,可以参考这个链接,写的很好了 参考链接:https://blog.csdn.net/classhao1/article/details/8182733 #等号两边不能有空格,之前错误一直出在这里 yesterday=`date -d last-day +%Y-%m-%d` echo $yest
echo "现在 时间 :`date '+%Y%m%d %T'`" echo "现在 时间 :`date '+%Y%m%d %H%M%S'`" echo `date '+%Y%m%d-%H%M%S'` t3=`date '+%Y-%m-%d %H:%M:%S'` echo $t3 你可能会觉得这个问题会很简单,因为百度一下就会有呀,为什么我要记录下来还是写一篇博客呢?因为呀,我是一名运维实习生,每天都需要备份数据库, 时间 日期 是非常重要的,可以确定数据文件的唯一性。 那么我们开始吧! 问题:需要给每一个文件按照规范命名,包括前缀,IP地址、端口、创建 时间 、后缀等 例如:DATA_TEXT_NCAYU_192.168.149.135_3306_20210316233139.sql [root@ncayu618 ncayu]# vim date_backup.sh #!/b. 这里的%Y,%m,%d分别指代年,月,日。 %H,%M,%S分别指代时,分,秒 %Y,%m,%d之间的符号可以修改,可以用 - ,也可以用~,汉字等作为分隔符 date +"%Y年%m月%d日 %H:%M:%S" 像这样用汉字作为分隔符号也是可以的 对 日期 进行加减操作 加一天 date +"%Y-%m-%d" --date="+1 day" 里面的数字也可以修改,修改增加的天数,下面几项
可以使用date命令来 获取 当前 日期 ,并使用 格式化 选项来指定 日期 格式。例如,要 获取 当前 日期 的年月日,并将其 格式化 为20230504的形式,可以使用如下的 shell 脚本 : #!/bin/bash date=$(date +"%Y%m%d") echo $date 运行 脚本 后,将会输出当前 日期 的年月日,格式为20230504的形式。
[解决]Hive执行语句:Unable to create temp file for insert values Expression of type TOK_FUNCTION not suppor 2301_76348976: 请问这种方式如何一次性插入多条数据 [解决]presto查询中The node may have crashed or be under too much load.的问题 skillsflow: 这个参数都被删除了 还存在这个问题的 主要问题是请求的任务数过多 Spark-MLlib实例——决策树 这个可以替代别的数据集吗 python基础练习(二)—— 数据分析包numpy数组操作 IT_community: 请问最后两个输出咋报错了呢? [解决]presto查询中The node may have crashed or be under too much load.的问题 stevensam_lin: 根本问题不是这个吧