夏令时 DST (Daylight Saving Time) java中的夏令时【转】
1916年,德国首先实行夏令时,英国因为怕德国会从中得到更大的效益,因此紧跟着也采取了夏令时
1986年至1991年,中华人民共和国在全国范围实行了六年夏令时
サマータイム 夏時間(日本现在没有实行夏令时,但是在美国驻军的1948年〜1951年使用了夏令时)
一下内容来源:http://blog.csdn.net/java2000_net/article/details/4362316
==========================================================================================
内容来自论坛的文章:http://topic.csdn.net/u/20090711/01/82c73f46-20ac-4a95-977d-f3f077ce822a.html
如下的java代码
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
String sTime = "1991-04-07 00:00:00";
Date time = sdf.parse(sTime);
Calendar cd = Calendar.getInstance();
cd.setTime(time);
cd.add(Calendar.DATE, 7);
time = cd.getTime();
System.out.println(sdf.format(time));
在运行后,没有得到预期的
1991-04-14 00:00:00
而是
1991-04-14 01:00:00
凭空多出来了1小时
根据火龙果的研究成果,这个是夏令时哦,使用 Calendar.DST_OFFSET 可以获得偏移量。
夏令时是通过 TimeZone 的子类 sun.util.calendar.ZoneInfo 实现的。
ZoneInfo 中的数据存放于 %JRE_HOME%/lib/zi 目录中。 (注意,是在jre的目录下)
我们机器一般采用的时区名称为 Asia/Shanghai,相对应的时区信息文件位于:
%JRE_HOME%/lib/zi/Asia/Shanghai 中,这是一个二进制文件。
通过 sun.util.calendar.ZoneInfoFile 的解析,可以获得需要采用夏令时的时间为:
1940-06-03 01:00:00 ~ 1940-09-30 23:00:00
1941-03-16 01:00:00 ~ 1941-09-30 23:00:00
1986-05-04 01:00:00 ~ 1986-09-13 23:00:00
1987-04-12 01:00:00 ~ 1987-09-12 23:00:00
1988-04-10 01:00:00 ~ 1988-09-10 23:00:00
1989-04-16 01:00:00 ~ 1989-09-16 23:00:00
1990-04-15 01:00:00 ~ 1990-09-15 23:00:00
1991-04-14 01:00:00 ~ 1991-09-14 23:00:00
前段表示那一天开始的时间,也就是说那一天的 0 点在该时区中是不存在。
后段表示那一天结束的时间,这个时间计算很复杂:
如果当前时间为:1986-09-13 23:00:00,增加 1 小时后为 1986-09-14 00:00:00
如果当前时间为:1986-09-13 22:00:00,增加 2 小时后为 1986-09-13 23:00:00,因为 1986-09-13 23:00:00 是夏令时结束时间,时钟需要回拨。
由于每个时区的夏令时都不一样,编程语言中的夏令时算法非常复杂。
============================================================================================
扩展 : GMT
格林威治标准时间GMT
转:http://blog.csdn.net/sxzlc/article/details/7281603
夏令时 DST (Daylight Saving Time) java中的夏令时【转】的更多相关文章
- Java中的夏令时问题
因为在用C#做项目的时候被夏令时坑过一回,所以这次将在java中的时区转换信息做一下记录,很简单 SimpleDateFormat inputFormat = new SimpleDateFormat ...
- Java中夏令时带来的Date不一致问题 (转)
http://www.cnblogs.com/snake-hand/archive/2013/06/10/3131157.html 最近同事W发现使用Java Date创建日期,在不同的机器上执行,得 ...
- 夏令时(DST)测试
夏令时测试是比较小众的测试,主要针对在有夏令时的国家使用的软件,如果你接触到了这方面的测试,说明你在挣国外的钱:). 话不多说,先来介绍下什么是夏令时: 夏时制,夏时令(Daylight Sa ...
- DayLight Saving Light(HDU6010)
传送门:DayLight Saving Light 夏令时: 夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度, ...
- hdu 6010 Daylight Saving Time 泰勒公式
Daylight Saving Time Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- Java中的Calendar日历用法详解
第一部分 Calendar介绍 public abstract class Calendar implements Serializable, Cloneable, Comparable<Cal ...
- Daylight Saving Time
[Daylight Saving Time] 夏时制,又称日光节约时制.日光節約時間(英语:Daylight saving time)或夏令时间(英语:Summer time),是一种为节约能源而人为 ...
- java中的字符串相关知识整理
字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...
- Java中的字符串
Java语言中,把字符串作为对象来处理,类String就可以用来表示字符串(类名首字母都是大写的). 1.字符串常量 字符串常量是用双引号括住的一串字符. 例如:"Hello World&q ...
随机推荐
- LCA最近公共祖先 Tarjan离线算法
学习博客: http://noalgo.info/476.html 讲的很清楚! 对于一颗树,dfs遍历时,先向下遍历,并且用并查集维护当前节点和父节点的集合.这样如果关于当前节点(A)的关联节点( ...
- 从Yii2的Request看其CSRF防范策略
用ajax请求还是用命令行CURL请求总是会得到 http400:Bad Request的错误, 而如果用Web网页方式GET访问(去除verbFilter的POST限制),是正常的,是CSRF验证的 ...
- 4.Android下拉列表框spinner学习
下拉列表框被广泛使用,诸如淘宝.京东等手机端经常可以看到这个部件身影,今天就来学习下它. 首先布局文件增加代码:如图 接下来在values下增加arrays.xml 如图 ...
- BZOJ-2748 音量调节 DP+背包(脑残)
水DP,一开始竟然想错了...水了半天....真可怕 2748: [HAOI2012]音量调节 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 1156 ...
- JSP将表单提交并在本页中显示
代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8& ...
- 循序渐进Linux 3:Linux下软件安装与管理
一.源码安装 ./configuremakemake install 二.RPM包 1. 安装软件包 rpm -i [辅助选项] file1.rpm file2.rpm主选项 -i: install, ...
- Linux中vi编辑器的用法
实验一: vi编辑器的模式切换 1. 实验目标:熟练掌握vi编辑器的三种模式间切换及其特点 2. 实验操作步骤: 步骤一: 进入vi编辑器即命令模式 进入vi编辑器可以在命令终 ...
- 向Oracle中传入数组,批量执行SQL语句
1.首先用PL/SQL创建package create or replace package excuteBatchOperate as type sqlStr_Array ) index by bi ...
- 我对 impress.js 源码的理解
源码看了两天,删掉了一些优化,和对 ipad 的支持,仅研究了其核心功能的实现,作以下记录. HTML 结构如下: <!doctype html> <html lang=" ...
- memcached安装和php-memcached扩展安装.update.2014-08-15
服务器端主要是安装memcache服务器端,目前的最新版本是 memcached-1.3.0 .下载官网:http://www.danga.com另外,Memcache用到了libevent这个库用于 ...