Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26857
  • 博文数量: 10
  • 博客积分: 25
  • 博客等级: 民兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-06 18:51
文章分类
文章存档

2012年(10)

我的朋友

分类:

2012-08-14 12:27:31

原文地址:time in the linux 作者:zhe_wang

1,问题由来。
    一直觉得linux系统的时间问题是个很杂乱的一个问题,现在又遇到了。
所以想趁机好好地理一理。

  1. #include <stdio.h>
  2. #include <sys/io.h>

  3. unsigned char cmos_read(unsigned char addr)
  4. {
  5.     unsigned char tmp = 0;
  6.     iopl(3);
  7.     outb(addr,0x70);
  8.     tmp = inb(0x71);
  9.     iopl(0);
  10.     return tmp;
  11. }


  12. int main(void)
  13. {
  14.     printf("seconds = %x\n",cmos_read(0));
  15.     printf("minute = %x\n",cmos_read(2));
  16.     printf("hour = %x\n",cmos_read(4));
  17.     system("date");
  18.     return 0;
  19. }
运行结果:

问题:为什么cmos里面的小时12,而linux系统中的时间是20 ?
----------------------------------------------------------------------------------------------
2,先说说时区。(顺便补一补地理知识)

如图所示:东十二区是最东边,那儿是一天的开始,“日界线”就标志昨天的结束,新一天的开始。
----------------------------------------------------------------------------------------------
3,时区。
     3.1,什么是UTC?
       整个地球分为二十四时区,每个时区都有自己的本地时间。在国际
无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时
(UTC, Universal Time Coordinated)。UTC与格林尼治平均时GMT, 一样,
都与英国伦敦的本地时相同。在本文中,UTC与GMT含义完全相同。
        
     学过地理的人都知道,中国是在东边,学地理的时候说的都是东经多少
度,北京在东八区,也就是北京时间比UTC早八个小时,也就是在一天中我们
要比英国人早八个小时见到升起的太阳。
---------------------------------------------------------
 
      3.2,说说什么是本地时间。
        世界各地因地理位置不一样,各个地方都有自己的时间,在一些大
宾馆,可以看到前台到处都挂的钟,什么纽约时间,北京时间,伦敦时间等
等。本地时间很好理解。
       在安装系统的时候,cmos里面放是UTC,操作系统要给用户显示本地
时间怎么办?人家在安装系统的时候会让你选择所在位置,然后配置一些信
息,让你的操作系统一启动就基于CMOS中的UTC计算出你所在的本地时间。

--------------------------------------------------------------------------
        3.3,如何由UTC计算出本地时间?
           公式:UTC + 时区差 = 本地时间
         举上两个小例子就清楚了
         北京是东八区,假如UTC这时是7(也就是现在伦敦时间是7),
北京时间就是7+8=15,也就是下午3点,也就是我们下午3点的时候,人
家伦敦现在天刚亮。纽约的时区是西五区,比UTC落后五个小时。同样
假如UTC现在是7点,纽约时间是7-5=2,人家现在就是凌晨2点。
----------------------------------------------------------------------------------------------
阅读(695) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~