一、问题产生的背景
中间件:tomcat6
jdk:1.6
框架:springmvc + ibatis2
今天在做程序的时候,在前台录入了一个1986-05-04在后台总是报错,其它时间都没有问题,错误如下:rejected value [1986-05-04]。
二、问题原因排查
1、首先可以确定不是框架配置导致的问题,因为其它时间都没有问题
2、通过单元测试转化该日期和其它日期看看转化的结果有没有什么差异
测试代码:
@Test
public void testDate() throws ParseException {
String str = "1986-05-04";
String str2 = "1986-05-06";
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(str);
Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse(str2);
System.out.println(date);
System.out.println(date2);
}
运行结果如下:
Sun May 04 01:00:00 CDT 1986
Tue May 06 00:00:00 CDT 1986
3、原因分析
通过以上的测试我们发现,两个日期最终转化出的结果不一致,在1986-05-04转化的时候,后面的时分秒并不是我们期望的00:00:00,而是01:00:00。这就说明日期不能转化成年月日,那么导致这一问题的主要原因可能就是时区问题了,于是我们试着修改了一下运行时的时区,结果运行正确。
Sun May 04 00:00:00 GMT+08:00 1986
Tue May 06 00:00:00 GMT+08:00 1986
三、问题解决
1、以run configurations的方式运行,然后选择Arguments,在VM arguments中输入
-Duser.timezone="Etc/GMT-8"
2、如果要修改tomcat,可以在catalina中配置JAVA_OPT="-Duser.timezone=Etc/GMT-8"
四、参考文档:
http://xuyifeng1111.blog.163.com/blog/static/140894623201491509265/
分享到:
相关推荐
此外,还需要设置`minimalDaysInFirstWeek`属性以确保第一周至少包含7天,这样可以避免一些边界问题。 示例代码如下: ```java public static int getWeekOfYear(Date date) { Calendar c = new ...
java 将excel里面的数字时间转化为准确的时间格式;具体来源有点忘记了,实现是摘自了开源代码里面的一段。
Java 中的日期和时间处理是编程中非常重要的一方面,Date、String 和 Timestamp 是三种常用的日期和时间类型,本文将详细介绍它们之间的转换问题。 一、获取系统当前时间 在 Java 中,可以使用以下三种方法来获取...
Java 时间转化工具类
### Java时间格式转换详解 在Java开发过程中,对日期时间的操作是必不可少的。为了更好地处理时间数据,Java提供了丰富的API来实现时间格式的转换。本文将详细介绍如何利用Java内置类库进行时间格式的转换,包括从`...
根据提供的文件信息,本文将详细解释Java中时间与日期格式化的相关知识点,包括如何使用`java.text.DateFormat`类以及`java.text.SimpleDateFormat`类来进行日期格式的定制化处理,并且会额外介绍`java.util....
### Java将数字转换为时间格式的方法 在Java编程语言中,经常需要处理日期与时间相关的数据,例如将数字(通常是表示时间戳或特定格式的字符串)转换为更易读的时间格式。这种转换不仅可以帮助我们更好地理解和操作...
java编程中String类型时间转化成Date类型
在Java编程语言中,日期和时间的处理是常见的任务,涉及到日期的创建、格式化、解析、比较以及各种转换操作。本篇文章将深入探讨Java中日期转换的各种方法和技巧。 一、日期对象的创建 在Java中,日期对象可以通过...
在Java编程语言中,处理日期和时间是非常常见的需求。Java提供了一系列的类和方法来帮助我们进行时间日期的格式化、解析和转换。在给定的文件中,主要涉及的是`java.util.Date`、`java.text.SimpleDateFormat`和`...
在Java编程语言中,时间处理是一项重要的任务,尤其是在开发需要处理日期和时间的系统时。本文将深入探讨Java中时间的几种主要转换方式,包括Date类型、long类型以及String类型之间的相互转换。这些转换方法对于理解...
JAVA获取当前时间并转换成string格式 在 Java 中获取当前时间并将其转换为字符串格式是一个常见的操作。下面我们将详细介绍如何实现这一功能。 首先,我们需要使用 Java 的 Date 类来获取当前时间。Date 类是 Java...
在Java时间转换中,还需要注意日期和时间的时区问题。例如,在某些应用程序中,需要将日期和时间转换为特定的时区,以适应不同的应用场景。 Java时间转换是Java编程语言中非常重要的一部分,它提供了灵活的日期和...
Java 中各种时间格式的转换要点 Java 中有多种时间格式,包括 java.util.Date、java.util.Calendar、java.util.GregorianCalendar 等,这些类都可以用来表示和操作时间。但是,在实际开发中,需要根据不同的需求...
根据给定文件的信息,本文将围绕“当前时间和转化为格林时间”的主题进行展开,详细解析如何在Java编程语言中获取当前时间,并将其转换为格林尼治标准时间(Greenwich Mean Time,简称GMT)。 ### 一、获取当前时间...
这些源代码可以帮助我们更好地理解在实际项目中如何高效地处理时间转换和格式化问题。 通过以上内容,我们可以了解到在Android开发中,处理时间转换和格式化的核心方法。实践中,开发者需要根据具体需求选择合适的...
java8 localtime 毫秒与时间互转 获取前一天六点钟时间
支持Fri Feb 02 18:18:49 CST 2018转为date和2018-01-30 22:22:24,以及2018-01-30 22:22:24转date
然而,这些类存在一些设计上的问题,因此Java 8引入了新的日期时间API,包括`java.time.LocalDate`, `java.time.LocalDateTime`, 和 `java.time.ZonedDateTime`等。这里我们主要关注`LocalDate`,因为它是没有时区...
在Java编程中,实现连续截屏并将其转化为GIF是一项技术性较强的任务。这个功能可以应用于屏幕录制、演示过程记录或者其他需要动态展示画面变化的场景。以下是对这个过程的详细解释: 1. **屏幕捕捉**: 在Java中,...