以centos为例,其它系统应该是一样或者类似的.

需要用到两个命令: date 和 hwclock

其中 date 命令由 coreutils 这个包提供, hwclock 命令由 util-linux 这个包提供.看这两个包名应该可以感觉出这两个包都是属于非常基本的包,所以不用担心你的linux分发版没有这两个命令.

先说设置时间,设置时间要用到 date 命令.

来个例子: date -s "2015-12-21 13:30"

后面表示时间的字符串可以有很多种格式,具体可参考手册.

以上命令只是设置"系统时间",而不会改变"硬件时间".据说如果仅仅设置系统时间,系统会在下次启动的时候重新从硬件中读取硬件时间,导致设置的时间会在重启后失效.具体没试,感觉挺有道理.

对于"系统时间"和"硬件时间"的个人理解是,硬件时间是我们进bios时看到的时间,它能够往前推进是依靠主板上的那个纽扣电池.而对于"系统时间",是系统在启动的时候从硬件那里同步了一份"硬件时间",系统启动之后的时间标准就依靠"系统时间","系统时间"能够往前推进是依靠系统的运行.

系统时间和硬件时间之间的交互可以使用 hwclock 命令:

来个例子,利用硬件时间修改系统时间: hwclock --hctosys

利用系统时间修改硬件时间: hwclock --systohc

查看硬件时间: hwclock --show

这两个命令的这几个用法应该可以满足简单的需求了,hwclock --utc 这个貌似是使用utc时间,还没细究utc时间是啥.

+++++++++新增新增+++++++++++

当使用 hwclock 来依据系统时间设置硬件时间的时候,若使用--utc 选项,则设置的硬件时间是按照时区与本地时间经过变换后的时间,也就是说,我们进bios看到的时间很可能会与在系统中看到的系统时间不一样,这个要依赖我们在系统中使用的时区.

这也就能解释为什么我们安装了双系统之后,在windows系统中和linux系统中的时间不一样. 据说windows中显示的时间是按照硬件时间来的,那接下来我们就把在bios中看到的时间等同与在windows系统中显示的时间(硬件时间).

假设在windows中的时间是准确的, 但是linux显示时间的时候, 要从硬件取来时间, 然后根据时区的设置对从硬件取得的时间进行变换, 把变换得到的时间作为系统时间. so, 问题来了. 按照这个过程, 明显可以看出linux中显示的时间就应该和windows中的不一样.

有一个跟 --utc 类似的选项, 是 --localtime , 当使用 hwclock --systohc 或者是 hwclock --hctosys 的时候, 可以使用 --localtime 选项, 然后系统时间和硬件时间同步的时候就不按照时区对时间进行变换了.

边学边卖, 如有错误, 恳请指正.

顺便说一下, hwclock 命令的手册上--show 选项有一句是这样的, The time shown is always in local time.

linux系统的时间调整的更多相关文章

  1. Linux系统date时间设定

    修改linux系统的时间EDT和EST为CST EDT:指美国东部夏令时间 EST:英国时间 CST:北京时间 那么现在只要改成北京时间的时区CST就可以了,修改如下: [root@localhost ...

  2. date linux系统校正时间

    date命令使用 -d<字符串>  显示字符串所指的日期与时间.字符串前后必须加上双引号.   date -d '13 second ago' ‘+%T’  13秒前   date +%T ...

  3. Linux系统硬件时间12小时制和24小时制表示设置

    目前的服务器status是下面这样的 服务器系统    centos7 Linux系统时间      Fri Mar 20 15:26:27 CST 2020 Linux系统硬件时间  Fri 20 ...

  4. django 获取系统当前时间 和linux 系统当前时间不一致 问题处理。

    问题场景: 在django admin models 实体对象添加一个属性最后修改时间,用户在添加.修改是系统自动修改操作时间. UpdateTime自动获取系统时间.并且自动修改. 代码设置如下. ...

  5. 如何修改linux时间? 校正linux系统的时间

    第一步:通过xshell远程连接到linux系统 第二步:输入 tzselect 第三步:选择所在的州,中国人请选择 5 ,亚洲 第四步:选择你所在的国家,中国人请选择9,中国 第五步:选择一个时区, ...

  6. 笔记:查看linux系统开机时间

    [root@localhost ~]# uptime -s -- :: 通过命令uptime -s 查看系统开机时间

  7. 使用ntpdate校正linux系统的时间

    当Linux服务器的时间不对的时候,可以使用ntpdate工具来校正时间. 安装:yum install ntpdate ntpdate简单用法: # ntpdate ip # ntpdate 210 ...

  8. Linux 系统开机时间及当前时间

    最近一次系统开机时间:date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H:%M ...

  9. Linux系统中时间区域和API

    1.问题 在开发云平台程序的时候,经常会碰到时间区域转换的问题.比如,任何网络存储的文档的metadata都自己记录了编辑时间.但是,云平台记录时需要把这个时间转成标准时间,便于管理.但是用户使用的时 ...

随机推荐

  1. SQLSERVER 16进制转10进制

    原码.补码.反码参考: http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html 进制转换参考: http://ww ...

  2. Internal Server Error500

    开启#LoadModule rewrite_module modules/mod_rewrite.so

  3. Hubilder用git插件安装使用

    打开Hbuilder,工具->插件安装(git分布式版本管理插件) 打开https://www.github.com,注册.登录.创建仓库 在Hbuilder中新建项目→然后右键→Team→共享 ...

  4. Spring AOP 实现原理与 CGLIB 应用

    https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/ AOP(Aspect Orient Programming),也就是面向 ...

  5. HTML:Input元素标签的详细介绍

    总结Input的标签: Input表示Form表单中的一种输入对象,其又随Type类型的不同而分文本输入框,密码输入框,单选/复选框,提交/重置按钮等,下面一一介绍.1,type=text输入类型是t ...

  6. linux mknod命令解析

    linux mknod命令解析 http://www.cnblogs.com/cobbliu/archive/2011/07/05/2389014.html mknod:make node  生成设备 ...

  7. Windows 上使用 cygwin 连接到 docker toolbox

    Windows 上使用 cygwin 连接到 docker toolbox Docker 确实给软件开发带来一些好处,在简化部署.统一开发.测试和生产环境上,有它独到的理念.Linux 上可直接安装 ...

  8. 第一个thinkphp入口文件

    ThinkPHP3.1.3_full已下载 网站根目录下编辑一个入口文件index.php <?php define('APP_NAME','Index'); //项目名称 define('AP ...

  9. Python基础(冒泡、生成器、迭代器、列表与字典解析)

    一.冒泡算法 冒泡算法,给定一组数据,从大到小排序或者从小到大排序,就像气泡一样 原理:  相邻的两个对象相比,大的放到后面,交换位置 交换位置通过a,b=b,a来实现 1.我们可以通过for循环来根 ...

  10. git log 常用命令

    1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Page Down.↓.↑来控制显示: ...