`
ppooooll
  • 浏览: 46984 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

linux中用shell获取昨天、明天或多天前的日期:

阅读更多
在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:
# -d, --date=STRING display time described by STRING, not `now’
[root@Gman root]# date -d next-day +%Y%m%d #明天日期
20091024
[root@Gman root]# date -d last-day +%Y%m%d #昨天日期
20091022
[root@Gman root]# date -d yesterday +%Y%m%d #昨天日期
20091022
[root@Gman root]# date -d tomorrow +%Y%m%d # 明天日期
20091024
[root@Gman root]# date -d last-month +%Y%m #上个月日期
200909
[root@Gman root]# date -d next-month +%Y%m #下个月日期
200911
[root@Gman root]# date -d next-year +%Y #明年日期
2010
DATE=$(date +%Y%m%d --date ’2 days ago’) #获取昨天或多天前的日期
名称 : date
使用权限 : 所有使用者
使用方式 : 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
设置系统当前时间(12:34:56):date --s 12:34:56
注意 : 当你不希望出现无意义的 0 时(比如说 1999/03/07),则能在标记中插入 - 符号,比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。 当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
ntp时间同步
linux系统下默认安装了ntp服务,手动进行ntp同步如下
ntpdate ntp1.nl.net
当然,也能指定其他的ntp服务器
-------------------------------------------------------------------
扩展功能
date 工具可以完成更多的工作,不仅仅只是打印出当前的系统日期。您可以使用它来得到给定的日期究竟是星期几,并得到相对于当前日期的相对日期。了解某一天是星期几
GNU 对 date 命令的另一个扩展是 -d 选项,当您的桌上没有日历表时(UNIX 用户不需要日历表),该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期究竟是星期几:
$ date -d "nov 22"
Wed Nov 22 00:00:00 EST 2006
$
在本示例中,您可以看到今年的 11 月 22 日是星期三。
所以,假设在 11 月 22 日召开一个重大的会议,您可以立即了解到这一天是星期三,而这一天您将赶到驻地办公室。
获得相对日期
d 选项还可以告诉您,相对于 当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为 -d 选项的参数,就可以完成这项任务。
例如,您需要了解两星期以后的日期。如果您处于 Shell 提示符处,那么可以迅速地得到答案:
$ date -d ’2 weeks’
关于使用该命令,还有其他一些重要的方法。使用 next/last指令,您可以得到以后的星期几是哪一天:
$ date -d ’next monday’ (下周一的日期)
$ date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
$ date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
$ date -d last-month +%Y%m(上个月是几月)
$ date -d next-month +%Y%m(下个月是几月)
使用 ago 指令,您可以得到过去的日期:
$ date -d ’30 days ago’ (30天前的日期)
您可以使用负数以得到相反的日期:
$ date -d ’dec 14 -2 weeks’ (相对:dec 14这个日期的两周前的日期)
$ date -d ’-100 days’ (100天以前的日期)
$ date -d ’50 days’(50天后的日期)
这个技巧非常有用,它可以根据将来的日期为自己设置提醒,可能是在脚本或 Shell 启动文件中,如下所示:
DAY=`date -d ’2 weeks’ +"%b %d"`
if test "`echo $DAY`" = "Aug 16"; then echo ’Product launch is now two weeks away!’; fi

来自: http://hi.baidu.com/yangyang1582/blog/item/7a84b831f01af3f31b4cff34.html

取得unix时间戳
date +%s

将时间戳1123495443 换算成可以识别的年月日分秒

date -d '1970-01-01 UTC 1123495443 seconds'
分享到:
评论

相关推荐

    linux下的shell与make

    ### Linux下的Shell与Make知识点详解 #### 一、Shell基础 **1.1 什么是Shell** - **定义**: Shell作为用户与Linux操作系统之间的接口,它既是命令解释器也是支持多用户的编程环境。 - **功能**: 支持多用户操作...

    linuxB-shell

    在Linux系统中,Bash(Bourne-Again SHell)是默认的命令解释器,是用户与操作系统交互的重要工具。Bash shell脚本是一种强大的编程语言,它允许用户编写自动化任务,执行日常管理任务,或者创建复杂的系统服务。...

    Linux shell

    Linux Shell是操作系统与用户交互的重要接口,它是一个命令行解释器,允许用户通过文本命令来控制计算机。在本文中,我们将深入探讨如何基于C语言构建一个支持多重管道(multiple pipes)和重定向(redirection)功能的...

    Linux-shell获取天气

    每一个城市多会对应一个id(比如,北京为101010100,因为本人在银川,所以例子中用银川的id:101170101),通过id可以获取对应城市实时天气或者全天天气,还可以获取七天天气。  1.1shell脚本  shell脚本代码...

    Linux Shell Scripting with Bash

    ### Linux Shell Scripting with Bash #### 核心知识点解析 **1. Linux Shell Scripting 基础** - **Shell 的概念与作用** - Shell 是一个命令解释器,是用户与操作系统之间的交互界面。 - 用户通过输入命令,...

    在linux 系统shell 批量添加用户和密码

    本文将深入解析如何使用Shell脚本来批量创建用户并自动生成密码,这是一个常见的运维任务,特别是在大规模部署服务器或云环境时。 ### 核心知识点:Shell批量添加用户和密码 #### 1. **Shell脚本基础** Shell脚本...

    在shell脚本中获取上个月最后一天的日期方法

    linux中用date命令来获取上个月最后一天的日期: $ date -d`date +%Y%m01` last day +%Y%m%d 20161231 编写脚本getdate.sh: #! /bin/sh nowdate=`date +%Y%m01` #本月第一天 startdate=`date -d$nowdate last ...

    shell快速合并多个Excel表格.txt

    办公的时候想要合并多个Excel表格,一个个来拷贝粘贴,如果文件很多就要花很多时间,前面试了很多种方法,先用office和Python,感觉还是有点麻烦,后面自己写了shell脚本。

    在Linux中用批处理设置环境变量的方法

    Linux操作系统是众多IT专业人员工作中的重要平台之一,环境变量作为Linux系统中一个非常重要的概念,它被用于定义系统运行环境的动态属性,诸如系统路径、系统变量等,这些属性会影响到应用程序的运行。在Linux中...

    LINUX and UNIX Shell(1)

    Linux和Unix Shell是两种强大的命令行界面,它们提供了一种与操作系统交互的方式,特别是对于系统管理、脚本编写和自动化任务。Shell不仅是命令解释器,还是一个编程环境,允许用户通过编写脚本来执行一系列复杂的...

    linuxshell脚本学习笔记.pdf

    Linux Shell 脚本学习笔记 Linux Shell 脚本是指使用 Linux 操作系统的 Shell 中执行的一系列命令的集合,用于自动化一些重复性的工作。下面是 Linux Shell 脚本学习笔记中的一些重要知识点: 命令提示符 命令提示...

    linux中的shell功能实现

    在linux中用c语言实现的shell功能

    linux中shell脚本中awk的深入分析

    awk 在 Linux 中的深入分析 awk 是一款功能强大且灵活的文本处理工具,在 Linux 系统中广泛应用于数据处理、文本处理和报表生成等领域。本文档将深入分析 awk 的使用和实现机制,探讨 awk 的内置变量、指令和函数,...

    Linux中用date命令显示或设置系统的日期和时间

    linux date

    linux中用shell快速安装配置Go语言的开发环境

     下载安装包go1.7.linux-amd64.tar.gz  解压文件到指定目录: tar -zxf go1.7.linux-amd64.tar.gz  设置环境变量:GOROOT, GOPATH, PATH 既然我们可以列出这些步骤,那么便可以将整个过程自动化。 下面是安装脚本...

    获取当前日期下周的日期

    获取当前日期下周的日期 在Java编程中,获取当前日期下周的日期是指获取当前日期的下一个星期的日期。下面是相关知识点的详细解释: 获取当前日期 在Java中,获取当前日期可以使用`new Date()`语句,返回当前系统...

    Linux中用rename命令批量替换文件名方法实例

    在Linux系统中修改文件名可以用mv命令,但是它只能对单个文件进行操作,如要要批量执行还要写shell脚本,用for语句迭代执行,不过Linux中另外一个命令支持批量替换文件名,它是rename,rename支持正则表达式匹配。...

    Linux与UNIX Shell编程指南

    《Linux与UNIX Shell编程指南》是一本专注于操作系统交互和脚本编写的重要参考资料,它涵盖了Linux和UNIX环境下的Shell编程基础知识及高级技巧。Shell是Linux和UNIX系统中的命令解释器,它提供了一个用户与操作系统...

    Linux中用好P2P下载.pdf

    "Linux中用好P2P下载.pdf" Linux操作系统中,P2P下载一直是一个困扰Linux爱好者的难题。Linux中有什么P2P下载工具?如何使用P2P工具下载?本文将介绍Linux中流行的BT下载工具Azureus和P2P下载器aMule。 首先,让...

Global site tag (gtag.js) - Google Analytics