java 时间纪元与时区介绍
来源:互联网 发布:安知玉如意点评 编辑:程序博客网 时间:2024/04/27 22:21
时间纪元
所谓的”时间纪元”就是1970年1月1日0时0分0秒,指的是开始的时间。比如Java类代码:
Date date = new Date(0);
System.out.println(date);
打印出来的结果:
Thu Jan 01 08:00:00 CST 1970
也是1970年1月1日,实际上时分秒是0点0分0秒,这里打印出来的时间是8点而非0点,原因是存在系统时间和本地时间的问题,其实系统时间依然是0点,只不过我们的电脑时区设置为东8区,故打印的结果是8点。
时区划分
地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早。东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒来计算,这给人们带来不便。
为了克服时间上的混乱,1884年在华盛顿召开的一次国际经度会议(又称国际子午线会议[1] )上,规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为中时区(零时区)、东1-12区,西1-12区。每个时区横跨经度15度,时间正好是1小时。最后的东、西第12区各跨经度7.5度,以东、西经180度为界。每个时区的中央经线上的时间就是这个时区内统一采用的时间,称为区时,相邻两个时区的时间相差1小时。例如,中国东8区的时间总比泰国东7区的时间早1小时,而比日本东9区的时间迟1小时。因此,出国旅行的人,必须随时调整自己的手表,才能和当地时间相一致。凡向西走,每过一个时区,就要把表拨慢1小时(比如2点拨到1点);凡向东走,每过一个时区,就要把表拨快1小时(比如1点拨到2点)。并且规定英国(格林尼治天文台旧址)为本初子午线,即零时(24时)经线。
时区获得
通过java.util.TimeZone类中getDefault方法的获取当前系统的时区。这个类最终是会调用sun.util.calendar.ZoneInfo类的getTimeZone 方法。这个方法返回一个string类型的时区ID。默认的时区ID是从System类的user.timezone属性那里得到。如果user.timezone没有定义,它就会尝试从user.country和java.home属性来得到ID。 如果它没有成功找到一个时区ID,它就会使用GMT作为系统默认的时间区域。
补充:System类的属性是在java.lang.System类的initProperties方法中被初始化的。这是一个本地方法。在Windows系统中,System属性是从Windows注册表中被初始化的,而在Linux/Unix中是由环境变量来进行初始化。
转载自:时间纪元与时区介绍
- java 时间纪元与时区介绍
- Java中的时间与时区
- 时间纪元
- 时区与时间
- java编程中遇到的时区与时间问题总结
- java编程中遇到的时区与时间问题总结
- java编程中遇到的时区与时间问题总结
- java编程中遇到的时区与时间问题总结
- 时间与时区相关函数
- Linux的时间与时区
- mysql 时区与时间函数
- postgresql 时区与时间函数
- 时区与时间(二)
- lua中的时区与时间
- 时区判断与矫正时间
- Java 时区之间时间转换
- Java获得指定时区时间
- 修改sap的用户时间/时区与系统时间/时区
- Java Webservice简单示例(非框架)
- 15-网络-NSURLConnection
- rk3288 u-boot sscanf实现
- Centos 7搭建VPN(PPTP)服务器方法
- 网易新闻iOS版在开发过程中曾经使用过的第三方开源类库、组件
- java 时间纪元与时区介绍
- 在Linux中产生加密或解密随机密码
- 位运算
- csharp: Data binding in WPF DataGrid control
- spark多个application的同时运行
- ios 推送通知
- HDU -- 4183 Pahom on Water(最大流)
- Unity自动录音自动播放功能
- 友元函数 和 友元类 讲解和使用