Linux--date命令 date命令

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"来作参考。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/352776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为某人命名以重新连接到您的服务器

在进行测试自动化时,通常需要知道当前计算机的名称,以提示另一台计算机连接到它,特别是在并行运行测试的情况下。 本周,我试图对服务器进行测试,以使其连接回在从属测试计算机上运行的WireMock服务器。 堆栈溢出的标准…

as转html5工具,将keras的h5模型转换为tensorflow的pb模型

背景:目前keras框架使用简单,很容易上手,深得广大算法工程师的喜爱,但是当部署到客户端时,可能会出现各种各样的bug,甚至不支持使用keras,本文来解决的是将keras的h5模型转换为客户端常用的tens…

暑假第六周

刘思翔来深圳玩,陪玩 转载于:https://www.cnblogs.com/cts1234/p/9664244.html

linux shell数据重定向(输入重定向与输出重定向)详细分析

在了解重定向之前,我们先来看看linux 的文件描述符。 linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文…

计算机科学技术的教育应用论文,浅谈计算机科学技术在计算机教学中的应用论文...

计算机科学,研究计算机及其周围各种现象和规律的科学,亦即研究计算机系统结构、程序系统(即软件)、人工智能以及计算本身的性质和问题的学科。计算机科学是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法…

socketserver和socket的补充(验证客户端合法性)

一、socket的补充 1、参数 socket.socket(familyAF_INET,typeSOCK_STREAM,proto0,filenoNone) 参数说明: family 地址系列应为AF_INET(默认值ipv4),AF_INET6(ipv6),AF_UNIX,AF_CAN或AF_RDS。 (AF_UNIX 域实际上是使用本地 socket 文件来通信) type 套接字类型应为…

使用Spring Boot和Spring Security验证JWT

对于我当前的项目,我将使用Spring Boot设置REST API (最有可能使用BoxFuse运行)。 为了能够使用API​​端点,应用程序将检查传入的请求是否具有较早提供的有效JWT令牌 (由我信任的API服务提供)。 为了实现…

怎么查看linux文件夹下有多少个文件

ls | wc -w是查看有多少个文件及文件夹ls | wc -c这个查看目录下多少个文件. 使用wc命令 具体通过wc --help 可以查看。如:wc -l filename 就是查看文件里有多少行 wc -w filename 看文件里有多少个word。 wc -L filename 文件里最长的那一行是多少个字…

[转]xargs详解

为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别。为什么要用x…

计算机桌面图片怎么设置大小,怎么设置桌面壁纸大小

很多人都知道怎麽设置电脑桌面,可真正找到适合自己屏幕的可能很少,图片或大或小,小编为大家分享了设置桌面壁纸大小的方法,下面大家跟着小编一起来了解一下吧。设置桌面壁纸大小方法先查看自己电脑屏幕分辨率,方法&…

html5 clip,canvas中使用clip()函数裁剪方法

未使用裁剪绘制一个圆*{margin:0;padding:0;}html,body{width:100%;height:100%;overflow:hidden;background-color:#AFAFAF;}varcanvasdocument.getElementById(canvas),contextcanvas.getContext(2d);canvas.widthdocument.body.clientWidth;canvas.heightdocument.body.clie…

linux中管道符的简单使用

管道符,可以把两条命令连起来,具体来说有两种应用,如下: 1. 例如: ps aux | grep "media" 在 ps aux中的結果中查找media。 2. 例如: find . -name "*.cpp" | xargs grep "cl…

51 nod 1522 上下序列——序列dp

题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId1522 很好的思想。考虑从小到大一对一对填数,这样也能对它的大小限制做一些操作了。 因为从小到大,所以只能全填在左边、全填在右边、两边各填一个。记录左边填到了哪个位…

spring tiles_Spring MVC 3模板和Apache Tiles

spring tiles对于任何Web应用程序,有效的设计考虑因素是使用模板引擎(或工具),并且由于具有Spring的“可插拔”特性,集成模板机制(例如Apache Tiles)确实要容易得多。 在这篇简单的文章中&#…

流程图用计算机if怎么写,if语句流程图

使用if语句实现单分支、两分支和使用switch语句实现多分支的程序程序1、if 语句有下面三种情况。第一种,条件成立就做。不成立就不做。if (条件)程序endif第二种,条件成立做“程序一”,不成立做“程序二”。不管条件成不成立都做。if (条件)程…

CENTOS 7 踢用户_从零学ELK系列(三):Centos安装Docker(超详细图文教程)

CSDN博客地址(关注,点赞)人工智能推荐GitHub(Star,Fork,Watch)【前言】为了更加真实的模拟生产部署环境,不仅需要Linux环境支持,而且ELK需要在不同的机器上部署;再重新装几台虚拟机&…

boost开发指南

C确实很复杂,神一样的0x不知道能否使C变得纯粹和干爽? boost很复杂,感觉某些地方有过度设计和太过于就事论事的嫌疑,对实际开发工作的考虑太过于理想化。学习boost本身就是一个复杂度,有魄力在项目中广泛采用boost复杂…

打游戏提示计算机丢失,Windows7电脑运行某游戏提示“计算机丢失mxvcp120.dll”怎么办...

许多用户都很喜欢在windows7系统中玩一些游戏,而在玩游戏的时候难免碰上一些错误提示,比如最近有windows7系统用户发现在运行某款游戏的时候,提示“计算机丢失mxvcp120.dll”,导致无法继续玩游戏,要怎么解决呢&#xf…

如何开发一个可运维系统的一点体会

本文来自网易云社区作者:施勇我们在开发一个复杂系统的时候,常常会强调服务化、模块化、松散耦合等要求以达到高可用、高可靠及高性能等目的;比较少的人会考虑到系统的方便部署配置和运维,至少是在刚开始设计系统的时候很少考虑到…

工程勘察设计收费标准2002修订版_全过程工程咨询收费模式超全解析

国内全过程工程咨询试点方案中收费标准比较全过程工程咨询是近两年提出的新的工程建设组织模式,它的管理机制、运行方式还处于探索阶段。各试点省、市相继发布了全过程工程咨询试点工作方案,对全过程工程咨询收费问题进行了积极探索。笔者整理了部分省市…