http://blog.163.com/cui_zhouyang/blog/static/703397212009624210044/
Date对象存储日期和时间,本来十分简单,并无大书特书之必要。不过,如果考虑了时区问题,那么小小的Date对象同样蕴藏着玄机。
何谓时区问题呢?如果你对时区这个词比较陌生,那么你是否听说过“倒时差”呢?比如,从北京飞到华盛顿,那么也许你要面临的第一个痛苦的问题就是“倒时差”。话说,北京在东八时区,而华盛顿在西五时区,两地的时间差是13个小时。也就是说,北京的晚上10点正好是华盛顿同一天的早上9点钟。(如果是美国夏时制的话,那么相差12个小时,美国的时间老复杂了,我也闹不明白。很惭愧的说,俺打小就在天朝呆着,至今还没有出过国门呢,完全没有倒时差的机会哈^_^。在下面的讨论中,也将忽略美国夏时制)。
现在我们明白了同一时间点在不同时区的显示是完全不同的,那么Date对象是如何应付这个问题的呢?要弄明白这个问题,首先必须清楚Date对象的以下三个概念:
1. 本地时间(Local Time)
本地时间顾名思义就是你所在的时区的时间。像我身在北京,那么我的本地时间就是东八时区的时间。不过,前提条件是,你的系统时间与你本地的时间是一致的。说白了,Date对象不可能从我口里知道我身在北京,它只能从我的操作系统时区信息了解我的位置。所以,如果我修改了自己的系统时间,例如采用美国的西五时区,那么对Date对象而言,它就认为我的本地时间是西五时区的时间了。
现在是北京时间2008年10月16日晚上9点31分42秒,如果你想生成一个Date对象反映当前的时间,那简直太容易了,一个不带任何参数的构造函数就可以办到:
var date:Date = new Date();
如果你不太关心分钟和秒钟,希望生成的Date时间中这两个值都置零,那么你可以这样做:
var date:Date = new Date(2008, 9, 16, 21);
注意了,今天是10月16日,但是传给构造函数的第二个参数却是9。这是因为Date对象中一月份用数字0表示,以此类推,10月份就应该是数字9了。同样,你要得到当前的日期和时间:
var str:String = date.toLocaleString();
str字符串的返回值是:“Thu Oct 16 2008 09:31:42 PM”。
2. 协调世界时(UTC Time)
协调世界时等同于零时区的时间。零时区包括以本初子午线为基准,东西经度各为7.5°范围内的地区。Date对象中任何关乎UTC Time的属性或者方法,它们的名字中都包含了字段“UTC”,因此非常容易辨识。想知道北京时间2008年10月16日晚上9点31分42,用世界时间表示是几点几分吗?
var str:String = date.toUTCString();
str字符串的返回值是:“Thu Oct 16 13:31:42 2008 UTC”。没错,零时区比北京时间早了8小时。
3. 时区差(timezoneOffset)
Date对象不仅储存了日期和时间信息,更储存了时区信息。Date对象的timezoneOffset属性,反映了你的本地时间和协调世界时之间相差多少分钟。这个属性值是只读的,它是由系统时间决定的。我的电脑上生成的Date对象,它们的timezoneOffset属性值一律是-480,这说明了北京时间晚于零时区时间480分钟。
如果,你希望通过一个字符串生成一个Date对象,那么请记住,这个字符串中最好带有时区信息,否则的话,生成的Date可能不是你期望的时间。例如,我修改了自己的系统时区为西五时区,这样的话,“Thu Oct 16 2008 09:31:42 PM”生成的Date对象将不再代表北京时间2008年10月16日晚上9点31分42秒,而只是华盛顿时间2008年10月16日晚上9点31分42秒。不过,如果字符串中包含了时区信息GMT+0800,“Thu Oct 16 2008 09:31:42 PM GMT+0800”,那么不论在任何情况下,生成的Date对象都将代表北京时间2008年10月16日晚上9点31分42秒。在将Date对象转换成字符串时,如果希望保留时区信息,那么请使用:
var str:String = date.toString();
说了这么多,相信你对时区一定有了更好的认识。是的,Date真的很简单,如果我们在使用和转换Date的时候,考虑了时区问题可能产生的影响,那就更好了。最后,我想推荐你在将Date对象转换成字符串时,请使用toString()方法,因为,它会一丝不苟的记录下时区信息。
UTC时间 = 本地时间 + 差值.
相关推荐
java flex 对象定义 数据类型定义
了解 flex State对象 以及关于flex state的demo的代码
本JavaWeb工程用于研究Flex与Servlet之间数据的交互 本工程编码方式:UTF-8 欢迎下载
SWF之间通信、Flex与SWF之间通信、C#与SWF之间通信
范例使用 SuperMap iClient Flex几何对象生成泰森多边形。
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...
flex计算连个日期之间相差的天数
比较好用的时间插件 单独引用空间小 效率高 如果需要可以下载哦
flex访问java对象,文档中为一个简单的ActionScript远程访问Java对象的例子
FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效 FLEX特效FLEX特效FLEX特效FLEX特效
Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex Flex ...
flex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex 精通 flexflex学习的好资源啊
Flex简介Flex简介Flex简介Flex简介Flex简介
flex事件flex事件flex事件flex事件flex事件
Flex_3_与_Flex_4_之间的区别
Flex与java通讯 Flex与java通讯
Flex 组件Flex 组件Flex 组件Flex 组件Flex 组件
java flexjava flexjava flex
flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘. 软件环境:windows7+... 3 flex与webservice交互WebService
主要是通过flex客户端与socket服务端之间的通信,实现在线聊天功能