项目报错信息:

Connot parse "1991-04-14",illegal instant due to time zone offset transition(Asia/Shanghai)

在网上查了一下说是由于夏令时问题引起了,那么什么是夏令时呢?

夏时制,夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。目前全世界有近110个国家每年要实行夏令时。我国1986年4月中央颁布了相关政策, 1992年起,夏令时暂停实行。
 
夏令时开始:每年从四月中旬第一个星期日的凌晨2时整(北京时间),将时钟拨快一小时,即将表针由2时拨至3时;
夏令时结束:直到九月中旬第一个星期日的凌晨2时整(北京夏令时),再将时钟拨回一小时,即将表针由2时拨至1时。
         
具体时段:【1986-05-04(第一年特殊化)至1986-09-14, 1987-04-12至1987-09-13, 1988-04-10至1988-09-11, 1989-04-16至1989-09-17, 1990-04-15至1990-09-16, 1991-04-14至1991-09-15】。
 
夏令时对编程的影响: 有一些日期转换的类(org.joda.time包下的类)一碰到夏令时开始日期(1986-05-04,1987-04-12 ,1988-04-10,1989-04-16,1990-04-15,1991-04-14)就会报错

import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public static Date getBirthdayByIdCardNo(String IDCardNo) {
Date birthday = null;
if (StringUtils.isNotBlank(IDCardNo)) {
int length = IDCardNo.length();
if (length == 15 || length == 18) {
String strBirthday = null;
if (length == 18) {
//7—14位出生年月日
strBirthday = IDCardNo.substring(6, 14);
} else {
//7-12位出生年月日,比如670401代表1967年4月1日
strBirthday = StringUtils.leftPad(IDCardNo.substring(6, 12), 8, "19");
}
//DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMdd");会报错
//birthday = LocalDate.parse(strBirthday, formatter).toDate();会报错

          //SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");//所有的日期转换都要经过Calendar类,所以是线程不安全的。

//date = df.parse("2008-08-08");

          birthday = DateUtils.parse(strBirthday, "yyyyMMdd");

}

        }
return birthday;
}
import java.util.Date;
import java.util.regex.Pattern; import org.joda.time.DateTime;
public class DateUtils { public static final Pattern DATE_PATTERN = Pattern.compile("^\\d{4}-\\d{1,2}-\\d{1,2}$"); public static Date parse(String time, String format) {
return DateTimeUtils.toDate(DateTimeUtils.parse(time, format));
}
} import java.util.Date; import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; public class DateTimeUtils { public static Date toDate(DateTime dateTime){
return dateTime == null ? null : dateTime.toDate();
} public static DateTime parse(String time, String format) {
if(StringUtils.isBlank(time)){
return null;
}
return DateTime.parse(time,
DateTimeFormat.forPattern(format));
} }



 
解决方案:
 在启动类*Applation.java 中加入
 System.setProperty("user.timezone", "Etc/GMT-8");
 
友情链接:https://my.oschina.net/u/3871554/blog/1859717(讲述为何使用joda 包而非SimpleDateFormat)
 
 
 

Illegal instant due to time zone offset transition (Asia/Shanghai)_夏令时问题的更多相关文章

  1. Cannot parse "1986-05-04": Illegal instant due to time zone offset transition (Asia/Shanghai)

    调查系统错误时,发现了一个很奇怪的现象,出生日期1986-05-04号的用户始终无法注册.发现后台使用使用jodatime的代码demo如下: public static DateTime parse ...

  2. 解决mysql设置时区时的错误Unknown or incorrect time zone: 'Asia/Shanghai'

    Mysql默认时区格式是'+8:00'的格式,这个时区可以在my.ini中[mysqld]节点下设置 default-time-zone = '+8:00' 默认这个设置是没有的 但是mysql不支持 ...

  3. JodaTime报时区异常错误

    在将爬下来的网页解析需要的字段批量入口的时候(逻辑类似下面): @Test public void test_001(){ String TIME = "1990-04-15"; ...

  4. obj-c编程10:Foundation库中类的使用(5)[时间对象]

    隔了好久才有了这新的一篇,还是无奈的时间啊!so这次我们就着重谈谈它喽. F库中有很多时间相关的类,比如NSDate,NSTimeInterval,NSTimeZone,NSDateComponent ...

  5. [git]用pelican搞一个自己的blog(已完成)

    pelican Pelican Static Site Generator, Powered by Python:Pelican是python语言写的静态网站生成器.因为我一直打算用github pa ...

  6. 《OD大数据实战》Hue环境搭建

    官网: http://archive.cloudera.com/cdh5/cdh/5/hue-3.7.0-cdh5.3.6/ 一.Hue环境搭建 1. 下载 http://archive.cloude ...

  7. 【转载】Hadoop可视化分析利器之Hue

    http://qindongliang.iteye.com/blog/2212619 先来看下hue的架构图:  (1)Hue是什么? Hue是一个可快速开发和调试Hadoop生态系统各种应用的一个基 ...

  8. Hue集成Hadoop和Hive

    一.环境准备 1.下载Hue:https://dl.dropboxusercontent.com/u/730827/hue/releases/3.12.0/hue-3.12.0.tgz 2.安装依赖 ...

  9. hadoop in hue的搭建(基于cdh版本)

    首先官网下载tar包 http://archive.cloudera.com/cdh5/cdh/5/hue-3.9.0-cdh5.5.4.tar.gz 在安装hue之前,还需要安装各种依赖包,首先要检 ...

随机推荐

  1. java锁总结

    1.公平锁与非公平锁 公平锁:指多个线程在等待同一个锁时,必须按照申请锁的先后顺序来依次获得锁. 优点:等待锁的线程不会饿死.缺点:整体效率相对较低. 非公平锁:可以抢占,即如果在某个时刻有线程需要获 ...

  2. cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器

    cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器map(映射,key不能重复,一对一对的,value_type(1, "one")),mu ...

  3. Linux下安装 Java

    一.在线下载 Java JDK 环境 (1)搜索 yum 库有什么 JDK 版本 [root@localhost ~]# yum search java | grep jdk ldapjdk-java ...

  4. 操作系统识别-python、nmap

    识别操作系统主要是用于操作系统漏洞的利用.不管是windows还是linux系统,在安装完毕后都会默认启动一些服务,开启一些端口. 识别目标主机的系统最简单的方法就是发送ping包,windows起始 ...

  5. 在树莓派上读取土壤湿度传感器读书-python代码实现及常见问题(全面简单易懂)

    本篇文章简单介绍了如何在树莓派上配置土壤湿度传感器以读取土壤湿度(以百分比的形式出现)及代码实现. 主要包含有以下4个模块: 一.土壤湿度传感器常见类型及介绍 二.实验所需设备 三.设备连线方式与代码 ...

  6. 并发07--线程池及Executor框架

    一.JAVA中的线程池 线程池的实现原理及流程如下图所示: 如上图所示,当一个线程提交到线程池时(execute()或submit()),先判断核心线程数(corePoolSize)是否已满,如果未满 ...

  7. JDK8--07:并行流与串行流

    JDK8中,提供了并行流和串行流,使用parallel()和sequential()来处理,parallel()为并行流sequential()为串行流,两者可以相互转换,以最后一个为准 LongSt ...

  8. 解决IE浏览器中点击按钮上传无效的问题

    前几天写了上传功能,点击按钮上传,在谷歌中是没有任何问题的: 但是在IE浏览器中点击没有任何效果 源代码如下:  后来发现在Firefox.IE浏览器中button标签内部可以含有其他标签,但是不能对 ...

  9. NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。

    App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  10. 【秒懂Java】【02_搭建开发环境】01_Java开发必备

    这篇文章主要讲解:要想使用Java来开发软件,需要做哪些准备工作? 配置电脑 作为一名开发人员,对文件的类型.大小等信息是比较敏感的,所以建议你的电脑做2个配置: 显示文件扩展名 文件扩展名(File ...