深入理解windows系统内的GMT和时区

http://www.itshanghai.net/technology/wdzl_windowsxp/

UTC(Universal Time Coordinated)是通用协调时,这两者几乎是一样的,都是指的格林尼治标准时间,只是UTC的称呼更为正式一点。

今天在做一些dc测试的时候,遇到时间问题,因为有一台xp英文版的计算机(时区默认为西八区),登域的时候出现故障,无法登入。登陆本机后,查看时区的时产生了有关时区和GMT的一些困惑,查资料,看地图,最后把问题弄明白了。在这个过程中,对gmt和时区等有了一些新的理解,写出来和大家分享。      这里不涉及dc相关知识,只讨论GMT和时区。

GMT,全称Greenwich Mean Time,即格林威治标准时,为什么有这样一个时间呢?原因这里不多说,网上很多,其实它的出现就是为规范全球的时间,各国都已一个固定时间为参照点来计算当地时间。为此1884年的美国华盛顿特区召开了国际经线大会,确定格林威治就是东西经零度的地方。人们将地球人为的分为24等份,每一等份为一个时区,每时区横跨经度15度,时间正好为1小时,以格林威治所在地的时区为中时区,我们现在假设GMT时间为1月10日凌晨(即0点整),往西一个时区,则减去一小时,则当地时间是1月9日夜晚23点整,往东一个时区,则加上一小时,则当地时间是1月10日凌晨1点,依次类推,中国在东经120度上,可以这样计算,(东经120°-东经0°)所得度数再除以15,即得8,所以中国在东八区上,那么,此时中国就是1月10日早上8点整。

有一个计算公式,本地时间=UTC + 时区差。 可能有不少朋友会问,utc是什么? 和GMT有什么区别呢?UTC(Universal Time Coordinated)是通用协调时,这两者几乎是一样的,都是指的格林尼治标准时间,只是UTC的称呼更为正式一点。 对于真个公式,我们来做几个例子就明白了。

首先需要说明,时区差是有正负之分的,以中时区为准,往西为负,往东为正,什么意思呢?举一个例子,中国的时区是东八区,即+08:00,完整写法是GMT+08:00,美国东部时区是西五区,即-05:00,完整写法是GMT-05:00,因为这个时间差需要参与运算,所以不能省去前面的符号。
       
      比如,现在是北京时间2009年2月5日13点40分,我想知道现在纽约(位于西五区)的时间,怎么算?我们来看公式: 本地时间=UTC + 时区差,根据公司首先需要得到当前的UTC时间是多少。UTC在中时区,即0,13:40=UTC+08:00,得出UTC为2009年2月5日05点40分,再利用此公式,由  纽约时间=05;40+(-05:00), 得出 纽约时间=0;40 因为得数为正,这就表示日期没变,还是2月5日,这样我们就可以计算出,此时美国的时间为 2009年2月5日凌晨0点40。

这些是上午由一个域时间差的问题引申出来有关GMT和时区的理解,希望能帮到大家

时间: 2024-11-02 18:22:54

深入理解windows系统内的GMT和时区的相关文章

《深入理解Windows Phone 8.1 UI控件编程》

<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的动画.掌握布局原理.列表虚拟化原理.高性能列表实现.图表编程.控件原理等. 目录如下: <深入理解Windows Phone 8 .1 UI控件编程>目录 第1章 深入解析程序界面 1.1 XAML的原理 1.1.1 XAML的概念 1.1.2 XAML页面的编译 1.1.3 动态加载XAML 1

理解Windows内核模式与用户模式

 1.基础 运行 Windows 的计算机中的处理器有两个不同模式:"用户模式"和"内核模式".根据处理器上运行的代码的类型,处理器在两个模式之间切换.应用程序在用户模式下运行,核心操作系统组件在内核模式下运行.多个驱动程序在内核模式下运行,但某些驱动程序在用户模式下运行. 当启动用户模式的应用程序时,Windows 会为该应用程序创建"进程".进程为应用程序提供专用的"虚拟地址空间"和专用的"句柄表格"

再理解Windows程序内部运行机制

参照孙鑫<VC++深入详解> 创建Win32程序的步骤: 1. 编写WinMain函数 2. 设计窗口类(WNDCLASS) 3. 注册窗口类 4. 创建窗口 5. 显示并更新窗口(ShowWindow(hwnd,SW_SHOWNORMAL);UpdateWindow(hwnd);) 6. 消息循环(不断地从消息队列中取出消息,并进行响应) 7. 窗口过程函数(处理发送给窗口的消息) 测试代码如下(在VS2010编译通过): #include <stdafx.h> #include

windows系统内置ftp客户端和相关命令

目的:学会使用windows系统内置ftp客户端和相关命令. 环境:windows 7 情景:多个设备需要备份它们的配置文件,设置为明天自动备份,以FTP服务下载到服务器,并以日期保存. 这里需要使用FTP服务,这个服务一般系统都自带有,可以使用命令模式,或写成批处理脚本运行. ftp命令支持交互和执行配置操作: 有如下参数: -v              禁止显示远程服务器响应. -n              禁止在初始连接时自动登录. -i              关闭多文件传输过程中

C++时间戳转化(涉及GMT CST时区转化)

问题由来 时间戳转换(时间戳:自 1970 年1月1日(00:00:00 )至当前时间的总秒数.) #include <stdio.h> #include <time.h> int main(int argc, const char * argv[]) { time_t t; struct tm *p; t=1408413451; p=gmtime(&t); char s[80]; strftime(s, 80, "%Y-%m-%d %H:%M:%S",

《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架

<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的动画.掌握布局原理.列表虚拟化原理.高性能列表实现.图表编程.控件原理等.  全书源代码免费下载: http://vdisk.weibo.com/s/zt_pyrfNHoezI 试读章节会在博客园持续更新: [WP8.1UI控件编程]Windows Phone XAML页面的编译 [WP8.1UI控件编程]W

如何修改Windows Azure Web App的时区

Windows Azure的时区默认使用UTC,如果是VM可以直接修改,但Azure Web Apps的隔离性导致我们无法进行设置.应用系统使用DateTime.Now的地方很多,不可能做出一一修改.现在可以通过WEBSITE_TIME_ZONE解决该问题,操作如下: 1.选择要设置的Web App,进入CONFIGURE 2.app settings添加一个新项:KEY=WEBSITE_TIME_ZONE.VALUE=China Standard Time,保存设置 上面的VALUE可以是其它

深入理解Windows X64调试

随着64位操作系统的普及,都开始大力进军x64,X64下的调试机制也发生了改变,与x86相比,添加了许多自己的新特性,之前学习了Windows x64的调试机制,这里本着“拿来主义”的原则与大家分享. 本文属于译文,英文原文链接:http://www.codemachine.com/article_x64deepdive.html 翻译原文地址:深入Windows X64 调试 在正式开始这篇译文之前,译者先定义下面两个关于栈帧的翻译: frame pointer:栈帧寄存器.栈帧指针,在X86

理解Windows消息循环机制

理解消息循环和整个消息传送机制对Windows编程十分重要.如果对消息处理的整个过程不了解,在windows编程中会遇到很多令人困惑的地方. 什么是消息(Message)每个消息是一个整型数值,如果查看头文件(查看头文件了解API是一个非常好的习惯和普遍的做法)可以发现如下一些宏定义: #define WM_INITDIALOG                   0x0110 #define WM_COMMAND                      0x0111 #define WM_L