zoukankan      html  css  js  c++  java
  • linux操作系统的时间

    参考:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=3637782
    linux平台中有硬件时钟与系统时钟两种时钟,一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。另一个时间是 “System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,当操作系统启动的时候,内核时钟是要读取RTC时间来进行时间同步。

    1、系统时间的读取与设定

    date命令:以指定的形式显示时间或者设定系统时间。

    用法: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		显示版本信息并退出
    
    示例1:以指定的格式显示给定的时间

    date -d 20170301 +“%A %B”
    运行结果:星期三 三月

    示例2:以指定的格式显示文件中的时间(文件内容为20170301 20190611)

    date -f /home/sifang/time.txt +"%A %B"
    运行结果:
    星期三 三月
    星期二 六月

    示例3:以指定的格式显示当前时间

    date +"%A%B"
    运行结果:星期二六月

    示例4:显示文件的最后修改时间

    date -r filename

    示例5:设定系统时间

    date -s 20190611设置系统时间为2019年6月11时0点0分0秒
    date -s 17:55:55 设置系统时间为17点55分55秒
    date -s "20190611 17:55:55"设置系统日期和时间
    date -s "2019-06-11 17:00:00"设置系统日期和时间

    示例6:日期的加减

    date +%Y%m%d --date="-1 day" 显示前一天的日期
    date +%Y%m%d --date="+1 day" 显示后一年的日期
    date +%Y%m%d --date="-2 month" 显示前两个月的日期

    2、硬件时间的读取与设定

    hwclock 设置和显示硬件时间(一般只有root用户才有权限)

    -r, --show         读取并打印硬件时钟(read hardware clock and print result )
    -s, --hctosys      将硬件时钟同步到系统时钟(set the system time from the hardware clock )
    -w, --systohc     将系统时钟同步到硬件时钟(set the hardware clock to the current system time )
    
    --adjust  hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。 
    --debug  显示hwclock执行时详细的信息。 
    --directisa  hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。 
    --hctosys  将系统时钟调整为与目前的硬件时钟一致。 
    --set --date=<日期与时间>  设定硬件时钟。 
    --show  显示硬件时钟的时间与日期。 
    --systohc  将硬件时钟调整为与目前的系统时钟一致。 
    --test  仅测试程序,而不会实际更改硬件时钟。 
    --utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。 
    --version  显示版本信息。
    
    示例1:显示硬件时间

    hwclock -r或者hwclock

    示例2:以给定的时间设定硬件时间

    hwclock --set --date "2019-04-05 11:11:11"

    示例3:把硬件时间同步给系统时间

    hwclock -s

    示例4:把系统时间同步给硬件时间

    hwclock -w

    3、时区的读取与设置

    读取时区:date -R date +"%Z %z"
    timedatectl |grep "Timezone"

    设置时区的方法:
    方法一:图形界面

    系统--日期与时间设置--时区或者执行system-config-date打开(实际设置的是/etc/sysconfig/clock文件)

    方法二:文件拷贝

    执行命令ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime(立即生效)
    /usr/share/zoneinfo目录存放时区相关文件。

    方法三:tzselect

    执行tzselect,依据提示设置TZ环境变量。
    TZ='Asia/Shanghai'; export TZ

  • 相关阅读:
    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结v2
    JS设置cookie、读取cookie、删除cookie
    Atitit 图像处理30大经典算法attilax总结
    Atitit数据库层次架构表与知识点 attilax 总结
    Atitit 游戏的通常流程 attilax 总结 基于cocos2d api
    Atitti css transition Animation differ区别
    Atitit 图像清晰度 模糊度 检测 识别 评价算法 源码实现attilax总结
    Atitit 全屏模式的cs桌面客户端软件gui h5解决方案 Kiosk模式
    Atitit 混合叠加俩张图片的处理 图像处理解决方案 javafx blend
    Atitit  rgb yuv  hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
  • 原文地址:https://www.cnblogs.com/21summer/p/11003265.html
Copyright © 2011-2022 走看看