Linux硬件时钟和系统时钟设置

Linux时钟分为系统时钟(System Clock)和硬件时钟(Real Time Clock,简称RTC)。系统时钟是指当前Linux Kernel中的时钟;而硬件时钟则是主板上由电池供电的时钟,硬件时钟可以在BIOS中进行设置。当Linux启动时,系统时钟会去读取硬件时钟的设置,然后系统时钟就会独立于硬件时钟运作。

Linux关于时间的设置的shell命令有date和hwclock两种:

嵌入式s3c6410 ARM开发板中Linux时间设置:

1. date  -- 用来读取或设置系统时间

如设置当前系统的时间为2015/01/05 15:44:44

# date -s "2015-01-05 15:44:44"

2. hwclock -- 用来读取或设置硬件时间

# hwclock -s 将硬件时间同步到系统时间

# hwclock -w 将系统时间同步到硬件时间

一般Linux系统时间设置:

Linux中的所有命令(包括函数)都是采用的系统时钟设置。在Linux中,用于时钟查看和设置的命令主要有date、hwclock。

1、date

名称 : 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-60)

%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‘

注意 :当你不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date ‘+%-H:%-M:%-S‘ 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。

当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。

例子:修改日期时间

在命令行输入:

Date:显示当前时间 Fri Aug 3 14:15:16 CST 2007

date –s:按字符串方式修改时间

可以只修改日期,不修改时间,输入: date -s 2007-08-03

只修改时间,输入:date -s 14:15:00

同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:

#date -s "2007-08-03 14:15:00"

2、查看硬件时间

# hwclock

设置硬件时间

# hwclock -set -date="07/07/06 10:19" (月/日/年 时:分:秒)

3、硬件时间和系统时间的同步

按照前面的说法,重新启动系统,硬件时间会读取系统时间,实现同步,但是在不重新启动的时候,需要用hwclock命令实现同步。

硬件时钟与系统时钟同步:

# hwclock --hctosys(hc代表硬件时间,sys代表系统时间)

系统时钟和硬件时钟同步:(让系统的时间同步到硬件时钟)

# hwclock –systohc

时间: 2024-10-22 15:30:10

Linux硬件时钟和系统时钟设置的相关文章

实时时钟、系统时钟和CPU时钟的区别

http://blog.sina.com.cn/s/blog_68f909c30100pli7.html 实时时钟:RTC时钟,用于提供年.月.日.时.分.秒和星期等的实时时间信息,由后备电池供电,当你晚上关闭系统和早上开启系统时,RTC仍然会保持正确的时间和日期. 系统时钟:是一个存储于系统内存中的逻辑时钟.用于系统的计算,比如超时产生的中断异常,超时计算就是由系统时钟计算的.这种时钟在系统掉电或重新启动时每次会被清除. CPU时钟:即CPU的频率,当然这里的时钟频率指的是工作频率,即外频,还

我使用过的Linux命令之hwclock - 查询和设置硬件时钟

hwclock命令,与clock命令是同一个命令,主要用来查询和设置硬件时钟(query and set the hardware clock (RTC)).RTC=Real Time Clock,也就是硬件时钟.在Linux中有硬件时钟与系统时钟等两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中 的时钟.所有Linux相关指令与函数都是读取系统时钟的设定.因为存在两种不同的时钟,那么它们之间就会存在差异.根据不同参数设置,hwcloc

Linux 系统时钟

介绍 计算机中的很多程序都依靠精确的时间来正常工作, 比如一个脚本如何在指定的时间执行. 计算机有两个时钟,一个是始终运行的.由电池(CMOS)供电的硬件时钟,另一个是由运行在您的计算机上的操作系统维护的系统时钟(又称软件时钟).启动时,内核会把硬件时钟同步至系统时钟,之后两个时钟各自独立运行. 硬件时钟通常只在操作系统启动时用来设置系统时钟,系统时钟设置好后由系统时钟来记录时间.在Linux系统中,您可以选择用UTC/GMT 时间或本地时间来记录硬件时钟.推荐的选项是用UTC记录,因为可以自动

嵌入式Linux系统如何设置TimeZone

*************************************************************************************************************************** 作者:EasyWave                                               时间:2014.06.08 类别:Linux内核-TimeZone设置                  声明:转载,请保留链接 注意:

Zephyr学习(四)系统时钟

每一个支持多进程(线程)的系统都会有一个滴答时钟(系统时钟),这个时钟就好比系统的“心脏”,线程的休眠(延时)和时间片轮转调度都需要用到它. Cortex-M系列的内核都有一个systick时钟,这个时钟就是设计用来支持操作系统的,是一个24位的自动重装载向下计数器,中断入口就位于中断向量表里面,定义在zephyr-zephyr-v1.13.0\arch\arm\core\cortex_m\vector_table.S: 1 SECTION_SUBSEC_FUNC(exc_vector_tabl

STM32F2系列系统时钟默认配置

新到一家公司后,有个项目要用到STM32F207Vx单片机,找到网上的例子照猫画虎的写了几个例子,比如ADC,可是到了ADC多通道转换的时候就有点傻眼了,这里面的时钟跑的到底是多少M呢?单片机外挂的时钟是25M,由于该单片机时钟系统较为复杂,有内部高/低.外部高/低 .PLL锁相环时钟,又有AHB总线时钟.APB1/2时钟,而例子中很少讲到系统时钟的默认配置是怎么配置呢?那么就发点时间研究下这个单片机内部的复杂时钟系统吧. 下图是STM32F2系列的时钟树结构图: 1.内部高速时钟HSI.外部高

32系统时钟配置

 时钟是STM32单片机的驱动源,使用任何一个外设都必须打开相应的时钟.这样的好处就是,如果不使用一个外设的时候,就把它的时钟关掉,从而可以降低系统的功耗,达到节能,实现低功耗的效果.(低功耗) 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL. ①.HSI是高速内部时钟,RC振荡器,频率为8MHz. ②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz. ③.LSI是低速内部时钟,RC振荡器,频率为40kHz. ④.LSE是低速

单片机成长之路(51基础篇) - 023 N76e003 系统时钟切换到外部时钟

N76e003切换到外部时钟的资料很少(因为N76e003的片子是不支持无源晶振的,有源晶振的成本又很高,所以网上很少有对N76e003的介绍).有图有真相: 代码如下: main.c 1 #include <N76E003.H> 2 #include <SFR_Macro.h> 3 #include <Function_Define.h> 4 5 bit BIT_TMP; // 调用 SFR_Macro.h 使用的 6 7 void main(void){ 8 //

Linux下查看/修改系统时区、时间

一.查看和修改Linux的时区 1. 查看当前时区 命令 : "date -R" 2. 修改设置Linux服务器时区 方法 A 命令 : "tzselect" 方法 B 仅限于RedHat Linux 和 CentOS 命令 : "timeconfig" 方法 C 适用于Debian 命令 : "dpkg-reconfigure tzdata" 3. 复制相应的时区文件,替换系统时区文件:或者创建链接文件 cp /usr/sh