day=`date -d '-7 day' +%Y-%m-%d`           //声明一个day变量,得到的是日期七天前的日期.

man date,可以看到date可以显示当前的时间,修改系统时间,或者显示指定的时间。取到当前时间,当然可以反算回去,但又要判断是否是一个月的最后一 天,一年的最后一天, 还有闰年需要判断,写出的脚本不是10几行能解决的。其实date本身就有一个方法可以计算时间,昨天,无非是往后减一天。而这个 方法是man和help里没有说明的。很简单,就是-d参数,取昨天的日期就是:

date -d '-1 day' +%Y-%m-%d     , 简单吧。 如果是要计算月就用month,计算年就用year。

date命令

date命令的功能是显示和设置系统日期和时间。

该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)

date 设置时间格式

命令中各选项的含义分别为:

-d datestr, --date datestr 显示由datestr描述的日期

-s datestr, --set datestr 设置datestr 描述的日期

-u, --universal 显示或设置通用时间

时间域

% H 小时(00..23)

% I 小时(01..12)

% k 小时(0..23)

% l 小时(1..12)

% M 分(00..59)

% p 显示出AM或PM

% r 时间(hh:mm:ss AM或PM),12小时

% s 从1970年1月1日00:00:00到目前经历的秒数

% S 秒(00..59)

% T 时间(24小时制)(hh:mm:ss)

% X 显示时间的格式(%H:%M:%S)

% Z 时区 日期域

% a 星期几的简称( Sun..Sat)

% A 星期几的全称( Sunday..Saturday)

% b 月的简称(Jan..Dec)

% B 月的全称(January..December)

% c 日期和时间( Mon Nov 8 14:12:46 CST 1999)

% d 一个月的第几天(01..31)

% D 日期(mm/dd/yy)

% h 和%b选项相同

% j 一年的第几天(001..366)

% m 月(01..12)

% w 一个星期的第几天(0代表星期天)

% W 一年的第几个星期(00..53,星期一为第一天)

% x 显示日期的格式(mm/dd/yy)

% y 年的最后两个数字( 1999则是99)

% Y 年(例如:1970,1996等)

需要特别说明的是,只有超级用户才能用date命令设置时间,一般用户只能用date命令显示时间。

例1:用指定的格式显示时间。

$ date ‘+This date now is =>%x ,time is now =>%X ,thank you !'

This date now is =>11/12/99 ,time is now =>17:53:01 ,thank you !

例2:用预定的格式显示当前的时间。

# date

Fri Nov 26 15:20:18 CST 1999

例3:设置时间为下午14点36分。

# date -s 14:36:00

Fri Nov 26 14:15:00 CST 1999

例4:设置时间为1999年11月28号。

# date -s 991128

Sun Nov 28 00:00:00 CST 1999

例5:设置一天前

date --date "1 days ago" +"%Y-%m-%d"

Date 命令参数小技巧

LastUpdated:2006-03-27

By:Gman!

-for beginner:wink:此参数可以用于日志处理和时间统计;

由于Linux对man date -d 参数说的比较模糊,故举例如下:

# -d, --date=STRING   display time described by STRING, not `now'

For Linux

[root@Gman root]# date -d next-day +%Y%m%d

20060328

[root@Gman root]# date -d last-day +%Y%m%d

20060326

[root@Gman root]# date -d yesterday +%Y%m%d

20060326

[root@Gman root]# date -d tomorrow +%Y%m%d

20060328

[root@Gman root]# date -d last-month +%Y%m

200602

[root@Gman root]# date -d next-month +%Y%m

200604

[root@Gman root]# date -d next-year +%Y

2007

------------------------------------------------------------------------------

而FreeBSD则不同;举例如下:

For FreeBSD

bash-2.05b# date -v -1d +%Y%m%d

20060326

bash-2.05b#   date -v -1m +%Y%m%d

20060227

bash-2.05b#   date -v -1y +%Y%m%d

20050327

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

%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

在linux下怎么取前一天的日期:

date -d '-1 day' +%Y-%m-%d 如果是要计算月就用month,计算年就用year

1) 取之前的时间:

date -d "a day ago" +%Y%m%d 取出前1天的系统时间

date -d "2 days ago" +%Y%m%d 取出前2天的系统时间

2) 取之后的时间:

date -d "a day " +%Y%m%d 取出1天后的系统时间

date -d "2 days" +%Y%m%d 取出2天后的系统时间

注意 :

当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

linux显示前一天时间,在linux显示昨天(前一天)的日期相关推荐

  1. linux普通用户时间乱码,Linux root用户与普通用户时间不一致

    造成这种原因有多种,可能是安装软件时选的时区不是本国时间等等. 今天检查了root用户和oracle及grid用户的时间不一样,幸好数据库还没有正式应用,不然可能会造成时间差影响. 现在将同步的方法步 ...

  2. linux锁定系统时间设置,Linux时间设置系统时间、硬件时间和时间服务

    Linux有两个时间,一个是系统时间,一个是RTC时间(也叫硬件时间). Linux系统启动时,会自动获取硬件时间,设置为系统时间. 一.查询系统时间: 查询系统时间:date 查询/设置硬件时间: ...

  3. linux和window时间不一致,linux时间与Windows时间不一致的解决

    转载至http://goodluck1982.blog.sohu.com/138950694.html 一.首先要弄清几个概念: 1. "系统时间"与"硬件时间" ...

  4. linux cst utc时间转换,Linux下CST和UTC时间的区别以及不一致的解决方法

    1.在linux中,用date查看时间的时候显示: 2013年 2月 17日 星期三 19:04:14 CST 世界协调时间(Universal Time Coordinated,UTC): GPS ...

  5. linux服务器cst时间不对,Linux中UTC时间与CST时间不一致的问题

    为了学习,在虚拟机中最小化安装了CentOS6.7,使用时发现文件的时间戳跟实际时间不一致,用date查看时间的时候显示: 2016年 01月 01日 星期五 21:11:43 CST 然后用date ...

  6. linux图形化时间工具,Linux下dialog图形化工具详解

    #dialog介绍 dialog是一个可以输入图形界面的一个工具,但他得要结合shell来一起使用,方能发挥他的功效 #通用选项 [ --title ]在对话框上面显示标题字符串 [ --no-sha ...

  7. 查看linux重启机时间,【linux】查看Linux开机时间/重启时间/运行时间

    [linux]查看Linux开机时间/重启时间/运行时间 6年前 (2015-07-14)    作者:Jiaozn    分类:Linux    阅读次数:4164 评论(0) 有时候需要查看Lin ...

  8. Linux服务器上线时间,查看linux服务器时间

    你可以使用下面的工具来查看 Linux 或类 Unix 系统运行了多长时间: ◆uptime:告诉你服务器运行了多长的时间. ◆lastt:显示重启和关机时间. ◆tuptime:报告系统的运行时间历 ...

  9. linux上点时间延时,Linux上时间和定时器

    Linux下时间和定时器 http://blog.chinaunix.net/u1/35065/showart_1870601.html重点读了第三种方法.文章写得很好,加了一点点注释可参考http: ...

最新文章

  1. HTML5API(2)
  2. Centos7-install apache+mariadb+php
  3. ProE二次开发之VS2005+ProE Wildfire 4.0开发环境配置
  4. 经典面试题(3):关于this指向的常见面试题
  5. 关于三体执剑者的一点思考
  6. 【渝粤题库】陕西师范大学400001 思想政治教育原理 作业(专升本)
  7. 【优化算法】气味代理优化算法(SAO)【含Matlab源码 1131期】
  8. Unicode 汉字内码表
  9. 鸟哥的linux私房菜——蔡德明
  10. 学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习学习
  11. 克拉默法则的理解记忆方法
  12. iOS查看每日限免APP+监控APP降价信息教程
  13. 经典文献阅读之--PL-SLAM(点线SLAM)
  14. Ubuntu 16.04 引导修复(boot-repair)
  15. python列表同时添加多个元素_python怎么向列表中添加多个元素
  16. 京东2019暑期实习面经
  17. 4. Python面向对象语法——类的构造函数
  18. Opencv 3入门(毛星云)摘要
  19. 鸢尾花分类与直方图、散点图的绘制及可视化决策树
  20. MongoDB的安装、配置运行 与 Robomongo的下载安装

热门文章

  1. Notepad++中执行Python脚本
  2. 基于asp.net2.0中membership系统角色、用户、资源的权限设计
  3. svg 转图标字体制作
  4. leetcode - 150. Evaluate Reverse Polish Notation
  5. 2017.4.2号总结
  6. keepalived+nginx安装与配置
  7. postgresql-9.3.0级联复制搭建及简单配置
  8. C#中的MessageBox消息对话框
  9. oracle数据库查看等待,Oracle常见等待事件说明(三)-enqueue/free buffer waits
  10. python秒转换成小时分钟秒_1小时3分59秒!双11天猫交易额超1000亿元