时间表示:

用法:date [选项]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
以给定的格式显示当前时间,或是设置系统日期。

-d,--date=字符串              显示指定字符串所描述的时间,而非当前时间
  -f,--file=日期文件            类似--date,从日期文件中按行读入时间描述
  -r, --reference=文件          显示文件指定文件的最后修改时间
  -R, --rfc-2822                以RFC 2822格式输出日期和时间
                                例如:2006年8月7日,星期一 12:34:56 -0600
      --rfc-3339=TIMESPEC       以RFC 3339 格式输出日期和时间。
                                TIMESPEC=`date',`seconds',或 `ns' 
                                表示日期和时间的显示精度。
                                日期和时间单元由单个的空格分开:
                                2006-08-07 12:34:56-06:00
  -s, --set=字符串              设置指定字符串来分开时间
  -u, --utc, --universal        输出或者设置协调的通用时间
      --help            显示此帮助信息并退出
      --version         显示版本信息并退出

给定的格式FORMAT 控制着输出,解释序列如下:

%%    一个文字的 %
  %a    当前locale 的星期名缩写             (e.g., Sun)
  %A    当前locale 的星期名全称             (e.g., Sunday)
  %b    当前locale 的月名缩写                 (e.g., Jan)
  %B    当前locale 的月名全称                (e.g., January)
  %c    当前locale 的日期和时间              (e.g., Wed 22 Nov 2017 04:43:20 PM CST)
  %C    世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
  %d    按月计的日期(例如:01)
  %D    按月计的日期;等于%m/%d/%y                    e.g        11/22/17
  %e    按月计的日期,添加空格,等于%_d              
  %F    完整日期格式,等价于 %Y-%m-%d
  %g    ISO-8601 格式年份的最后两位 (参见%G)
  %G    ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
  %h    等于%b
  %H    小时(00-23)
  %I    小时(00-12)
  %c    按年计的日期(001-366)
  %k    时(0-23)
  %l    时(1-12)
  %m    月份(01-12)
  %M    分(00-59)
  %n    换行
  %N    纳秒(000000000-999999999)
  %p    当前locale 下的"上午"或者"下午",未知时输出为空
  %P    与%p 类似,但是输出小写字母
  %r    当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
  %R    24 小时时间的时和分,等价于 %H:%M
  %s    自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
  %S    秒(00-60)
  %t    输出制表符 Tab
  %T    时间,等于%H:%M:%S
  %u    星期,1 代表星期一
  %U    一年中的第几周,以周日为每星期第一天(00-53)
  %V    ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
  %w    一星期中的第几日(0-6),0 代表周一
  %W    一年中的第几周,以周一为每星期第一天(00-53)
  %x    当前locale 下的日期描述 (如:12/31/99)
  %X    当前locale 下的时间描述 (如:23:13:48)
  %y    年份最后两位数位 (00-99)
  %Y    年份
  %z +hhmm              数字时区(例如,-0400)
  %:z +hh:mm            数字时区(例如,-04:00)
  %::z +hh:mm:ss        数字时区(例如,-04:00:00)
  %:::z                 数字时区带有必要的精度 (例如,-04,+05:30)
  %Z                    按字母表排序的时区缩写 (例如,EDT)

时间设置:

显示系统时间:date

显示硬件时间 :
    hwclock --show 
    clock

Linux机器上的时间比较复杂,机器里有两个时钟,
硬件时钟(Real Time Clock,简称RTC)从根本上讲是CMOS时钟。
系统时钟  是由内核维护的。

系统时间=内核时间            硬件时间=CMOS时钟

在Linux下,默认情况下,系统时间和硬件时间,并不会自动同步。
在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。
硬件时间的运行,是靠Bios电池来维持。
而系统时间,是用CPU tick来维持的。
在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间。

设置系统时间 
# date -s“20120101 10:19"
(月/日/年 时:分:秒)

系统时钟 写入 硬件时钟:
# hwclock --systohc
或者
# clock --systohc

设置硬件时间
# hwclock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)
clock --set --date="07/07/06 10:19" (月/日/年 时:分:秒)

硬件时钟 写入 系统时钟:
# hwclock --hctosys
或者
# clock --hctosys
上面命令中,--hctosys表示Hardware Clock to SYStem clock。

为了保持系统时间与硬件时间的一致性,Linux每隔一段时间会将系统时间写入硬件。由于该同步是每隔一段时间(大约是11分钟)进行的,在执行完 date -s 命令后,如果马上重起系统,修改的时间就有可能没有被写入硬件。如果要确保修改生效,最好再使用 clock -w 这个命令将系统时间强行写入硬件。

再来说下clock -w这个命令
 -w |  --systohc  set the hardware clock to the current system time  系统时间写入硬件时间 
         --systz      set the system time based on the current timezone  设置系统时间基于当前时区
-s   | --hctosys   set the system time from the hardware clock           硬件时间设置入系统时间

设置完系统时间后,还需要同步到硬件时钟上
# clock --systohc

时区:

查看当前时区 
 date -R 

选择时区
 tzselect 
(tzselect命令用于选择时区。要注意的是tzselect只是帮我们把选择的时区显示出来,并不会实际生效,也就是说它仅仅告诉我们怎么样去设置环境变量TZ。)(TZ = Time Zone)

更改时区

  1. 直接更改,复制相应的时区文件,替换系统时区文件;或者创建链接文件  
                    cp /usr/share/zoneinfo/$主时区/$次时区  /etc/localtime  
                 在中国可以使用:  
                    cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

                创建软连接
               中国大陆 
               ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

  2. 如果不知道时区,使用刚才的tzselect命令查询
     最终系统会给出提示:
     You can make this change permanent for yourself by appending the line
    TZ='Asia/Shanghai'; export TZ
    to the file '.profile' in your home directory; then log out and log in again.

    Here is that TZ value again, this time on standard output so that you
    can use the /usr/bin/tzselect command in shell scripts:
    Asia/Shanghai

    进行下面的操作
    设定     TZ='Asia/Shanghai'; export TZ 
          # cp /usr/share/zoneinfo/$TZ  /etc/localtime 
               重新启动或者运行时钟设置脚本使之发生作用

  3. timeconfig可以直接更改时区
    我的centos不支持此命令,暂无数据。但是我强烈推荐使用此命令 
    如果没有timeconfig命令,可以通过yum安装timeconfig:
    yum install system-config-date 
    timeconfig是linux提供的一个图形化的配置根据,相对比较直观。
  4. 也可以通过网络确定时间
     在日期与时间设置工具对话框中的下部,有一个“启用网络时间协议”的选项,将该项选中就可以使用网络时间协议来同步Linux 系统时钟。选中该项后,其下面的服务器下拉列表框就变为可用状态,可从中选择一个时间服务器作为远程时间服务器。然后单击确定按钮,便可连接所设定的时间服务器,并与之同步时间。

最后几点说明

  • 时间保存在硬件实时钟(RTC)中,RTC由主板电池供电,即使关断电源也不会造成时间丢失
  • 系统启动时从RTC获取时间,这个步骤在rc.sysinit中做
  • UTC为true表示RTC保存的时间是UTC时间,false表示保存的是本地时间
  • UTC是协调世界时UTC相当于本初子午线(即经度0度)上的平均太阳时,过去曾用格林威治平均时(GMT)来表示.北京时间比UTC时间早8小时
  • CST是美国中央时区的缩写。在部分unix操作系统版本里,有时也会代表China
    Standard Time,所以有时候会造成混淆

linux的那些事-时间 时区的更多相关文章

  1. Linux修改时间时区并在Tomcat中生效

    Linux查看当前时间时区linux:~ # datelinux:~ # date –Rlinux:~ # zdump -v /usr/share/zoneinfo/Asia/Beijing ---- ...

  2. Linux如何修改和查询时区时间

    Linux如何修改和查询时区时间 我在日常工作中,最近遇到了在解压源码包的时候,提示时间比较旧,解压安装出现问题.原因是,租用的vps所在时区和自己所需要的时区不一致,于是在网上找了相关资料.并亲自实 ...

  3. 修改Linux Operating System的时间与时区

    修改Linux Operating System的时间与时区 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 有的小伙伴可能会遇到安装了linux系统后,尽管时区选择正确,也会发现系 ...

  4. linux OS与SQL修改时区,系统时间

    linux修改系统时间和linux查看时区.修改时区的方法 一.查看和修改Linux的时区 1. 查看当前时区命令 : "date -R" 2. 修改设置Linux服务器时区方法 ...

  5. linux系统修改系统时间与时区

    有装过Linux系统的人,可能都会有这样的经历,就是该机器安装windows系统时,时间正确,但是安装了linux系统后,尽管时区选择正确,也会发现系统时间不对.这是由于安装系统时采用了UTC,那么什 ...

  6. linux修改 时间 时区

    linux系统修改系统时间与时区 | 浏览:3486 | 更新:2014-06-18 19:36 1 2 3 4 5 6 7 分步阅读 有装过Linux系统的人,可能都会有这样的经历,就是该机器安装w ...

  7. Linux下修改时间时区的方法介绍

    点评:在Linux中,用于时钟查看和设置的命令主要有date.hwclock和clock.其中,clock和 hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件 ...

  8. Linux中设置系统时间和时区

    之前公司里有需求要做机器与服务器做时间同步,服务器发送时间戳和时区过来,机器这边根据接收到的时间戳和时区来改时间. 其实很简单,百度上应该也有很多博客有类似的教程,但是这里强调一点,百度上的博客里写的 ...

  9. Linux时间时区详解与常用时间函数

    时间与时区 整个地球分为二十四时区,每个时区都有自己的本地时间. Ø  UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT = UTC),格林威治时间和UTC时间都用秒数来计 ...

随机推荐

  1. cogs 3. 服务点设置 dijkstra

    3. 服务点设置 ★   输入文件:djsa.in   输出文件:djsa.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述] 为了进一步普及九年义务教育,政府要在某乡镇建 ...

  2. 秦皇岛 I 题

    有 n 个数字,你可以挑选其中任意个数字代表一个背包的体积,其余的数字表示的物品的体积,所挑选的背包必选完全装满,询问最终的方案数 思路分析 : 定义dp[i] 表示挑选 i 状态下的物品的方案数,f ...

  3. 【 Tomcat 】tomcat8.0 基本参数调优配置-----(1)

    Tomcat 的缺省配置是不能稳定长期运行的,也就是不适合生产环境,它会死机,让你不断重新启动,甚至在午夜时分唤醒你.对于操作系统优化来说,是尽可能的增大可使用的内存容量.提高CPU 的频率,保证文件 ...

  4. NumPy排序

    numpy.sort()函数 该函数提供了多种排序功能,支持归并排序,堆排序,快速排序等多种排序算法 使用numpy.sort()方法的格式为: numpy.sort(a,axis,kind,orde ...

  5. ElasticSearch 倒排索引简析

    内容概要 倒排索引是什么?为什么需要倒排索引? 倒排索引是怎么工作的? 1. 倒排索引是什么? 假设有一个交友网站,信息表如下: 美女1:"我要找在上海做 PHP 的哥哥." 需要 ...

  6. 20200104模拟赛 问题C 上台拿衣服

    题目 分析: 乍一看不就是从楼上扔鸡蛋那道题吗... 然后开始写写写... 设f [ i ] [ j ]表示 i 个记者膜 j 次可以验证多少层楼... 于是开始递推: 我们选取第 i 个记者去尝试其 ...

  7. JSON Web Token 是什么?

    免费获得官方JWT手册并深入学习JWT吧! 简介 JSON Web Token(缩写JWT),是一套开放的标准(RFC 7519),它定义了一种紧凑且自URL安全的方式,以JSON对象的方式在各方之间 ...

  8. 内网IP的解释

    https://baike.baidu.com/item/%E5%86%85%E7%BD%91ip/8881186?fr=aladdin

  9. 论文翻译:Mastering the Game of Go without Human Knowledge (第一部分)

    长久以来,人工智能的一个目标是在那些具有挑战性的领域实现超过人类表现的算法.最近,AlphaGo成为了在围棋上第一个打败了世界冠军的程序.在AlphaGo中,使用深度神经网络来进行树搜索,评估位置,和 ...

  10. springIOC源码接口分析(二):ConfigurableBeanFactory

    一 继承功能 1 SingletonBeanRegistry接口 此接口是针对Spring中的单例Bean设计的.提供了统一访问单例Bean的功能,类中定义了以下方法: 2 HierarchicalB ...