YYYY_MM=`echo $DIR|cut -d'-' -f1,2` DD=`echo $DIR|cut -d'-' -f3` [ -d $YYYY_MM/$DD ] || mkdir -p $YYYY_MM/$DD mv $DIR/* $YYYY_MM/$DD ---------------------------------------------------------- #将YYYY-MM-DD目录移动到YYYY-MM下 #!/bin/bash DIR=/data/test cd $DIR for DIR in * ;do YYYY_MM=`echo $DIR|cut -d'-' -f1,2` [ -d $YYYY_MM ] || mkdir $YYYY_MM mv $DIR $YYYY_MM 1、编写一个shell脚本dir10.sh,创建当前日期一年前365天的目录YYYY-MM-DD,并且下面有10个文件$RANDOM.logvim dir10.sh#!/bin/bashfor i in {1..365} ;do DIR=`date -d "-$i day" +%F` mkdir /data/test/$DIR for j in {1..10};do touch /data/test/$DIR/$RAN 我们要做的任务需求是将字符串20201013转换为20202013 00:00:00的日期类型格式 解决及测试 首先想到的是,先对前端传过来的字符串进行拼接,也就是拼上 00:00:00,再用SimpleDateFormat直接格式化为 yyyy-MM-dd HH:mm:ss就可以了 public static String getBirthDay(String str) { SimpleDateFormat ss1 = new SimpleDateFormat("yyyyMM dd "); SimpleDateFormat ss2 = new SimpleDateFormat(" yyyy-MM-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;
获取当前日志(一般默认是CST标准格式)-bash-4.1$ date 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获取昨天的日期(其中表示格式的”+’
9 # 描 述: 11 #======================================================== ======== 13 BASICDIR=/data/test1 DIR=`date -d "-$I day" +%F` mkdir /data/test/$DIR for j in {1..10} ;do #在 目录 下创建10个随机命名的 文件 touch /data/test/$DIR/$RANDOM.log is_date() { date -d "$1" "+%Y-%m-%d" > /dev/null 2>&1 if [ "$?" -eq 0 ] && [ "$1" == $(date -d "$1" "+%Y-%m-%d") ]; then return 0 #符合日期格式 return 1 #不符合日期格式 if is_date "2022-01-01"; then echo "符合日期格式" echo "不符合日期格式" if is_date "2022-13-01"; then echo "符合日期格式" echo "不符合日期格式" 上述代码中,is_date函数接收一个字符串参数,使用date命令将其转换为日期格式,并用"%Y-%m-%d"格式化。如果格式化后的日期字符串等于原字符串,则返回0,表示符合日期格式;否则返回1,表示不符合日期格式。最后进行测试,输出结果为: 符合日期格式 不符合日期格式 这说明该函数可以判断字符串是否符合 yyyy-mm-dd 格式。