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
格式。