⽤shell将时间字符串和时间戳互转
date的详细⽤户可以参考下⾯的
date +%s 可以得到UNIX的时间戳;
⽤shell将时间字符串与时间戳互转:
date -d “2010-10-18 00:00:00” +%s 输出形如:1287331200
⽽时间戳转换为字符串可以这样做:
date -d @1287331200 “+%Y-%m-%d” 输出形如:2010-10-18
如果需要得到指定⽇期的前后⼏天,可以:
1、seconds=date -d "2010-10-18 00:00:00" +%s #得到时间戳
2、seconds_new=expr $seconds + 86400 #加上⼀天的秒数86400
3、date_new=date -d @$seconds_new "+%Y-%m-%d" #获得指定⽇前加上⼀天的⽇前
current_time=`date "+%Y-%m-%d %H:%M"`
echo $current_time
current_second=`date -d "$current_time" +%s`
"$current_time"这⾥必须加上双引号,估计原因是因为字符串⾥⾯有空格
>>>>###
>>>>#
使⽤⽅式 : date [-u] [-d datestr] [-s datestr] [–utc] [–universal] [–date=datestr] [–set=datestr] [–help] [–version]
[+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明 : date 可以⽤来显⽰或设定系统的⽇期与时间,在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中可⽤的标记列表如下 :
时间⽅⾯ :
% : 印出
% %n : 下⼀⾏
%t : 跳格
%H : ⼩时(00…23)
%I : ⼩时(01…12)
%k : ⼩时(0…23)
%l : ⼩时(1…12)
%M : 分钟(00…59)
%p : 显⽰本地 AM 或 PM
unix时间戳转换日期格式
%r : 直接显⽰时间 (12 ⼩时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 ⽉ 1 ⽇ 00:00:00 UTC 到⽬前为⽌的秒数 %S : 秒(00…61)
%T : 直接显⽰时间 (24 ⼩时制)
%X : 相当于 %H:%M:%S
%Z : 显⽰时区
⽇期⽅⾯ :
%a : 星期⼏ (Sun…Sat)
%A : 星期⼏ (Sunday…Saturday)
%b : ⽉份 (Jan…Dec)
%B : ⽉份 (January…December)
%c : 直接显⽰⽇期与时间
%d : ⽇ (01…31)
%D : 直接显⽰⽇期 (mm/dd/yy)
%h : 同 %b
%j : ⼀年中的第⼏天 (001…366)
%m : ⽉份 (01…12)
%U : ⼀年中的第⼏周 (00…53) (以 Sunday 为⼀周的第⼀天的情形)
%w : ⼀周中的第⼏天 (0…6)
%W : ⼀年中的第⼏周 (00…53) (以 Monday 为⼀周的第⼀天的情形)
%x : 直接显⽰⽇期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000…9999)
若是不以加号作为开头,则表⽰要设定时间,⽽时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为⽉份,
DD 为⽇,
hh 为⼩时,
mm 为分钟,
CC 为年份前两位数字,
YY 为年份后两位数字,
ss 为秒数
把计 :
-d datestr : 显⽰ datestr 中所设定的时间 (⾮系统时间)
–help : 显⽰辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显⽰⽬前的格林威治时间
–version : 显⽰版本编号
例⼦ :
显⽰时间后跳⾏,再显⽰⽬前⽇期 : date +%T%n%D
显⽰⽉份与⽇数 : date +%B %d
显⽰⽇期与设定时间(12:34:56) : date –date 12:34:56
注意 : 当你不希望出现⽆意义的 0 时(⽐如说 1999/03/07),则可以在标记中插⼊ – 符号,⽐如说 date +%-H:%-M:%-S 会把时分秒中⽆意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(⽐如说 root)才能设定系统时间。 当你以 root ⾝分更改了系统时间之后,请记得以 clock -w 来将系统时间写⼊ CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
创建以当前时间为⽂件名的
mkdir date +%Y%m%d
备份以时间做为⽂件名的
tar cvf ./htdocs date +%Y%m%d.tar ./*
date命令如何获得上星期的⽇期?
lastmonth=date +%Y-%m --date="-1 month""-01";
然后 awk -v 作为⼀个参数这样传进去简单点。
#date -d “-1 week” “+%Y%m%d %A”
举⼀反三:date命令获得前天,昨天,明天,后天,上个⽉,下个⽉的⽇期
date -d "-2 day" "+%Y%m%d %A"  或 date --date="2 days ago" "+%Y%m%d %A"
date -d "-1 day" "+%Y%m%d %A"  或 date --date="1 day ago" "+%Y%m%d %A"
date -d "1 day" "+%Y%m%d %A"
date -d "2 day" "+%Y%m%d %A"
date -d "-1 month" "+%Y%m%d %A"
date -d "1 month" "+%Y%m%d %A"
echo date -d "-1 month" "+%Y-%m-%d %X"
还有其他⽤法:
date +%s 可以得到UNIX的时间戳;
@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论