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中的夏令时【转】的更多相关文章

  1. Java中的夏令时问题

    因为在用C#做项目的时候被夏令时坑过一回,所以这次将在java中的时区转换信息做一下记录,很简单 SimpleDateFormat inputFormat = new SimpleDateFormat ...

  2. Java中夏令时带来的Date不一致问题 (转)

    http://www.cnblogs.com/snake-hand/archive/2013/06/10/3131157.html 最近同事W发现使用Java Date创建日期,在不同的机器上执行,得 ...

  3. 夏令时(DST)测试

    夏令时测试是比较小众的测试,主要针对在有夏令时的国家使用的软件,如果你接触到了这方面的测试,说明你在挣国外的钱:).   话不多说,先来介绍下什么是夏令时:   夏时制,夏时令(Daylight Sa ...

  4. DayLight Saving Light(HDU6010)

    传送门:DayLight Saving Light 夏令时: 夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度, ...

  5. hdu 6010 Daylight Saving Time 泰勒公式

    Daylight Saving Time Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  6. Java中的Calendar日历用法详解

    第一部分 Calendar介绍 public abstract class Calendar implements Serializable, Cloneable, Comparable<Cal ...

  7. Daylight Saving Time

    [Daylight Saving Time] 夏时制,又称日光节约时制.日光節約時間(英语:Daylight saving time)或夏令时间(英语:Summer time),是一种为节约能源而人为 ...

  8. java中的字符串相关知识整理

    字符串为什么这么重要 写了多年java的开发应该对String不陌生,但是我却越发觉得它陌生.每学一门编程语言就会与字符串这个关键词打不少交道.看来它真的很重要. 字符串就是一系列的字符组合的串,如果 ...

  9. Java中的字符串

    Java语言中,把字符串作为对象来处理,类String就可以用来表示字符串(类名首字母都是大写的). 1.字符串常量 字符串常量是用双引号括住的一串字符. 例如:"Hello World&q ...

随机推荐

  1. 调研eclipse安卓平台的开发环境

    首先,我想抒发一下自己的感想.真的没想到这第一次的作业会这样的一波三折,本来以为自己已经弄好了eclipse,也弄过Java,安卓的环境配置应该不在话下,所以一拖再拖,从17号,也就是昨天开始,才着手 ...

  2. .net架构设计读书笔记--第二章 设计体系结构

    第五节 探索领域架构 一.领域驱动设计的价值与意义 最初在java中使用,.net要晚些才引入.领域驱动设计出现之初的争议.一个向导,少走弯路   1. 我们真的需要DDD吗? DDD并不适用于每个软 ...

  3. ElasticSearch插件安装Head、Kopf与Bigdesk

    ElasticSearch-Head ElasticSearch-Head 是一个与Elastic集群(Cluster)相交互的Web前台. ES-Head的主要作用 它展现ES集群的拓扑结构,并且可 ...

  4. JSP登录验证并显示信息

    加入C标签: 加入jstl.jar 和standard.jar加入Lib文件夹中 将c.tld放入WEB-Info文件夹中 index.jsp <%@ page language="j ...

  5. Android事件机制之一:事件传递和消费

    http://www.cnblogs.com/lwbqqyumidi/p/3500997.html 关于Android中的事件机制,用到的地方还是很多的,并且这个知识点还真有点复杂. 在写这篇文章前, ...

  6. Nginx 配置文件详解

    user nginx ; #用户 worker_processes 8; #工作进程,根据硬件调整,大于等于cpu核数 error_log logs/nginx_error.log crit; #错误 ...

  7. Sphinx学习之sphinx的安装篇

    一.  Sphinx简介 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎.意图为其他应用提供高速.低空间占用.高结果 相关度的全文搜索功能.Sphinx可以非常容易的与 ...

  8. linux4

    linux 特点:1.免费 开源(代码公开)2.支持多线程/多用户的操作系统3.安全性4.对内存和文件管理有自己的一套优越的方法 linux最小只需要4M ->嵌入式开发默认不启动用户界面roo ...

  9. Mvc3提交表格验证(转载)

    Model层:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System ...

  10. try catch finally执行顺序

    1.不管有木有出现异常,finally块中代码都会执行: 2.当try和catch中有return时,finally仍然会执行: 3.finally是在return表达式运算后前执行的,所以函数返回值 ...