以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. 在express项目中有效组织和使用mongoose

    平凡之路 1.创建express项目 express mongooseExpress 2.最简express var express = require("express"); v ...

  2. RTP协议分析(转自:http://blog.csdn.net/bripengandre/article/details/2238818)

    RTP协议分析 第1章.     RTP概述 1.1.  RTP是什么 RTP全名是Real-time Transport Protocol(实时传输协议).它是IETF提出的一个标准,对应的RFC文 ...

  3. urlencode和rawurlencode的区别

    摘自http://blog.csdn.net/doggie1024/article/details/5698615 urlencode:返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将 ...

  4. mysql日期加减

    mysql日期加减一.MySQL 为日期增加一个时间间隔:date_add().1.  示例:set @dt = now();select date_add(@dt, interval 1 day); ...

  5. 为 UIButton 添加长按事件

    UIButton *aBtn=[UIButtonbuttonWithType:UIButtonTypeCustom]; [aBtn setFrame:CGRectMake(40, 100, 60, 6 ...

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

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

  7. python_列表

    1.  列表的定义 (1) 用[]包含的元素,就是列表 (2)可以用list函数定义列表 2.  基本的列表操作(可参考示例) (1)元素赋值 (2)删除元素 (3)分片赋值 3. 列表方法 (1) ...

  8. django 用户登陆注册

    注册登陆 views.py #!/usr/bin/env python # -*- coding:utf- -*- from django.shortcuts import render,render ...

  9. MSDN相关下载地址

    Windows Server 2016官网下载:https://msdn.microsoft.com/zh-cn/subscriptions/downloads/default.aspx#search ...

  10. mysqld_multi部署mysql单机多实例

    1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2. ...