Linux--date命令 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  
 
 
一些 man page 沒提到的 --date=STRING 使用方法
date -d "yesterday" # 顯示昨天的時間
date -d "tomorrow" # 顯示明天的時間
date -d "1 hour" # 顯示一小時後的時間
date -d "2 day ago" # 顯示二天前的時間
date -d "3 month ago" # 顯示三個月前的時間
date -d "2 year" # 顯示二年後的時間
date -d "last friday" # 顯示上個星期五的時間
date -d "next week" # 顯示下週的時間
date -d "next month" # 顯示下個月的時間
date -d "fortnight" # 顯示二週後的時間
date -d "7/1 3 week" # 顯示 7/1 起算的第三週

date -d now +%s #时间转成时间戳
date -d '1970-01-01 1251734400 sec utc' +%Y/%m/%d// %T #时间戳转成时间

本地时间与UTC(世界协调时间)的转换  
 
首先我们了解一下时间的相关概念,以及之间的区别,需要了解的时间概念有:
本地时间(locale time)
格林威治时间(Greenwich Mean Time GMT)
时间协调时间 (Universal Time Coordinated UTC)
  本地时间,显而易见不用解释了
  先看看时间的标准:
(1)世界时 
世 界时是最早的时间标准。在1884年,国际上将1s确定为全年内每日平均长度的1/8.64×104。以此标准形成的时间系统,称为世界是,即 UT1。1972年国际上开始使用国际原子时标,从那以后,经过格林威治老天文台本初子午线的时间便被称为世界时,即UT2,或称格林威治时间 (GMT),是对地球转速周期性差异进行校正后的世界时。
(2)原子时 
1967年,人们利用铯原子振荡周期极为规律的特性,研制出 了高精度的原子时钟,将铯原子能级跃迁辐射9192631770周所经历的时间定为 1s。现在用的时间就是1971年10月定义的国际原子时,是通过世界上大约200多台原子钟进行对比后,再由国际度量衡局时间所进行数据处理,得出的统 一的原子时,简称TAI。 
(3)世界协调时 
世界协调时是以地球自转为基础的时间标准。由于地球自转速度并不均匀,并非每天都是精确 的86400原子s,因而导致了自转时间与世界时之间存在 18个月有1s的误差。为纠正这种误差,国际地球自转研究所根据地球自转的实际情况对格林威治时间进行增减闰s的调整,与国际度量衡局时间所联合向全世界 发布标准时间,这就是所谓的世界协调时(UTC:Coordinatde Universal Time)。UTC的表示方式为:年(y)、月(m)、日(d)、时(h)、分(min)、秒(s),均用数字表示。
GPS 系统中有两种时间区分,一为UTC,另一为LT(地方时)两者的区别为时区不同,UTC就是0时区的时间,地方时为本地时间,如北京为早上八点(东八区),UTC时间就为零点,时间比北京时晚八小时,以此计算即可
  通过上面的了解,我们可以认为格林威治时间就是时间协调时间(GMT=UTC),格林威治时间和UTC时间均用秒数来计算的。
而在我们平时工作当中看到的计算机日志里面写的时间大多数是用UTC时间来计算的,那么我们该怎么将UTC时间转化为本地时间便于查看日志,那么在作程序开发时又该怎么将本地时间转化为UTC时间呢?
   下面就介绍一个简单而使用的工具,就是使用linux/unix命令date来进行本地时间和local时间的转化。
   大家都知道,在计算机中看到的utc时间都是从(1970年01月01日 0:00:00)开始计算秒数的。所看到的UTC时间那就是从1970年这个时间点起到具体时间共有多少秒。
   
  以我的FC9平台为例:
    1.使用date命令获得本地时间
Mon Jan  5 21:06:48 CST 2009
   2.将本地易理解的时间转化为UTC时间,使用date 命令,对该时间进行UTC格式化
date +%s -d "Mon Jan  5 21:06:48 CST 2009"
返回的结果是:1231160808 #自1970年1月1日0:00:00起到今天晚上21:06:48共1231160808秒

  1231160808这就是我们所说的UTC或者格林威治时间。
3.使用命令date将难以理解的UTC时间转化成为容易理解的本地时间
在这里,我们随便将上面这个格林威治时间修改一下来进行转化即可,比如1231130828
date -d "1970-01-01 UTC 1231130828 sec"
返回结果是:Mon Jan  5 12:47:08 CST 2009  #是今天中午12:47:08

  4.使用date命令将本地时间进行格式化
date +%X -d "Mon Jan  5 12:47:08 CST 2009"
返回结果:12:47:08 PM
date +%x +%X -d "Mon Jan  5 12:47:08 CST 2009"
返回结果是:01/05/2009 12:47:08 PM
date +'%x %X %W' -d "Mon Jan  5 12:47:08 CST 2009"
返回结果:01/05/2009 12:47:08 PM 01   #01是星期一,如果是%w,返回的是1
date +'%Y-%m-%d %H:%M:%S %W' -d "Mon Jan  5 12:47:08 CST 2009"
返回结果是:2009-01-05 12:47:08 01

对UTC时间的进行格式化:
date +‘%x %X' -d "1970-01-01 UTC 1231130828 sec"
返回结果:01/05/2009 12:47:08 PM

date命令还有很多格式化的参数,功能很强大,大家可以使用"man date"或者"info date"来作参考。

Linux--date命令 date命令相关推荐

  1. Linux中的date、cal、bc三个简单命令

    1.date命令:显示日期与时间的命令 (1).在终端输入命令date,可以知道Linux操作系统的当前时间,如下图所示: (2).其中date命令又可以带一些参数,如果我们想让当前的日期的显示格式为 ...

  2. linux中命令date,Linux 中date命令的用法

    关于Linux内置命令date的用法,这里主要说一下,它在shell脚本中如何做日期计算和转换的. 格式化输出日期 详细的格式化符号可以用man date找到,这里以年月日来表示 获得当前的日期: # ...

  3. Linux基本命令之date命令的参数及获时间戳的方法

    这篇文章主要为大家介绍了Linux基本命令中的date命令的参数及获时间戳的方法,在本文中列举了4个获取时间戳的方法,需要的朋友可以参考下 1.时间命令:date 向date命令传递参数适用'+'(加 ...

  4. linux clock命令,Centos Linux下使用date/clock/hwclock命令设置系统和硬件时间

    博客迁移之后,没有注意新服务器的系统时间,今天突然感觉到不对,于是调了一下: 设置时间为2010年06月17日,命令如下 1 2 [root@hexuweb101~]$date-s06/17/2010 ...

  5. linux中date命令如何设置时间戳,Linux基本命令之date命令的参数及获时间戳的方法...

    1.时间命令:date 向date命令传递参数适用'+'(加号),在传递的参数中 %Y表示年 %m表示月 %d表示天 %H表示小时(表示的时间是00-23) %M表示分钟 %S表示秒 %s(表示uni ...

  6. Linux:命令date、ntp查看和修改(校准)时间和地区。

    Linux:命令date.ntp查看和修改(校准)时间和地区. date -d 不仅可以+1还可以加其他数字,+表达后多久,-表达前多久: 备注:中国所在的时区是东八区 单独使用date时,会出现一串 ...

  7. linux中通过date命令获取昨天或明天时间的方法

    linux中通过date命令获取昨天或明天时间的方法 date命令可以获取当前的时间,通过man,可以看到date有很多参数可以用,很容易做到格式化 date +"%F" 输出格式 ...

  8. Linux命令date命令

    A.将日期转换为Unix时间戳 将当前时间以Unix时间戳表示: date +%s 转换指定日期为Unix时间戳: date -d '2018-05-25 18:20' +%s B.将Unix时间戳转 ...

  9. linux中date命令PDT,linux系统下date命令修改时间及hwclock硬件时间

    修改日期: 时间设定成2016年5月18日的命令如下: date -s 05/18/2016 修改时间: 将系统时间设定成上午10点10分40秒的命令如下. date -s 10:10:40 修改时区 ...

  10. Linux基础命令-date命令

    date 命令详解 文章目录 date 命令详解 1. 简介 2. 常用日期格式 3. 参数用法 3.1 `-d, --date` 参数 3.2 `-f, --file` 参数 3.3 `-I, -- ...

最新文章

  1. matlab智能小车避障,Arduino智能小车系列教程4——超声波避障
  2. [PYTHON] 核心编程笔记(18.多线程编程)
  3. python 函数前有一个下划线_【Python】怎么写好一个 Python 函数?
  4. linux 拿shell,linux下备份拿shell[渗透必备]
  5. 怎么用c语言写一个贪吃蛇,刚学C语言,想写一个贪吃蛇的代码
  6. 修复win10的更新服务器,大师搞定win10系统自动更新失败的修复步骤
  7. IE7下JSON不能有多余的逗号,IE8下创建IMG节点的BUG
  8. 一个数据的乔迁奇遇记
  9. 递归的经典例子 java_java递归算法经典实例
  10. 屏幕录像专家 V6.0+注册机
  11. unity 场景背景替换2D图片方法
  12. Hadoop In Action
  13. 腾讯云发布智慧员工管理方案,支持组织360度协作
  14. 如何将Ai文件转换成PDF文件
  15. 甘特图:项目进度管理的必备工具
  16. 点电荷分布matlab仿真,用Matlab语言描绘三维空间中点电荷的电势分布 点电荷
  17. 计算$e^{-x^2}$的积分
  18. 域名命名规则及交易平台
  19. 诈骗团伙冒充京东金融客服来注销账号,25岁职场小伙3次转账超过3万,累计被骗14万,警方立案在线等结果,急......
  20. 何凯文每日一句打卡||DAY1~DAY3

热门文章

  1. mysql all_同样是MySQL的all privileges有啥不同?
  2. php100并发cpu告警,多线程并发导致CPU100%的一种原因和解决办法
  3. linux将日期和日历信息追加到文件中_Linux任务调度
  4. Sublime Text提示Unable to download XXX. Please view the console for more details安装插件失败解决
  5. C++中字符型和整型的关系
  6. 工业交换机外壳选用时有什么要求?
  7. 【渝粤教育】广东开放大学 财务管理 形成性考核 (58)
  8. 通信原理速学02:随机过程
  9. 屏幕坏点检测图片_电视屏幕出现坏点?行家会这样做!
  10. datatable如何生成级联数据_如何把Excel表数据批量生成条形码