Spring Tool Suite(简称STS)针对SimpleDateFormat.pase函数的实参值不做检验,异常直接默认值之
Spring Tool Suite(简称STS)是 Spring 团队开发的一款基于Eclipse的IDE,旨在简化开发Spring MVC 应用的流程。可以自动生成spring相关的配置文件。比如applicationContext.xml文件等。但是近来使用 Calendar日历类进行比较日期时,发现before、after函数不能输出预期的结果,于是逐一翻看Calendar源码:
public boolean before(Object when) {
return when instanceof Calendar
&& compareTo((Calendar)when) < 0;
}
但是还是没留意到 when instanceof Calendar 这条code。最后决定使用最底层的逻辑:比较getTimeInMillis 。带回家再找原因。
后来翻看API文档才注意到当且仅当 when 是Calendar实例时才会返回true。
但是这中间暴露了STS的一个bug。测试代码如:
@Test
public void testCalendar(){
String pattern1 = "YYYY-MM-dd";
String pattern2 = "yyyy-MM-dd";
SimpleDateFormat format = new SimpleDateFormat(pattern1);
Date theD = null ;
try {
theD = format.parse("2013-10-10");
} catch (ParseException e) {
e.printStackTrace();
}
Calendar theC = Calendar.getInstance() ;
theC.setTime(theD);
Calendar now = Calendar.getInstance() ;
System.out.println("theC : "+theC.getTime());
System.out.println("theC : "+theC.getTimeInMillis());
System.out.println("new : "+now.getTime());
System.out.println("new : "+now.getTimeInMillis());
System.out.println("new is before theC : "+now.before(theC));
}
正确情况下赢输出:
theC : Wed Jan 10 00:10:00 CST 3
theC : -62071948200000
new : Tue Sep 10 22:22:15 CST 2013
new : 1378822935807
new is before theC : false
但是实际情况确实
theC : Sun Dec 30 00:00:00 CST 2012
theC : 1356796800000
new : Tue Sep 10 22:31:28 CST 2013
new : 1378823488012
new is before theC : false
可以看到 theC变成了 2012年10月30号
不论吧pase函数内的实参修改成何值最后输出的都是 10月30号。无果,之后更换IDE。打开传统的myEclipse,Ctrl+C复制黏贴代码。奇迹出现:
直接抛出java.lang.IllegalArgumentException: Illegal pattern character 'Y',原来pattern1格式错误应为pattern2.但是万恶的STS竟然没有抛出任何异常,直接默认为了10月30号。
看了成熟IDE环境很重要啊。。。
Spring Tool Suite(简称STS)针对SimpleDateFormat.pase函数的实参值不做检验,异常直接默认值之的更多相关文章
- Spring Tool Suite(STS)启动时出现错误:Java was started but returned exit code=13问题解决
Spring Tool Suite(STS)是开发Spring的套件,也就是一个Eclipse,在之上增加了对Spring框架的支持,使其能快速的开发Spring. 错误如下: 解决办法: 如果系统安 ...
- 安装Spring Tool Suite(STS)
JAVA开发工具中,常用工具就是Eclipse,IntelliJ IDEA. 现在使用spring boot&cloud框架进行开发的时候,虽然可以使用上面两个工具,但都未必就真的量身定制,I ...
- 【Java架构:基础技术】一篇文章搞掂:Spring Tool Suite(STS)
1.简介 STS,是一个自定义版本的Eclipse,她可以方便地用来与各种Spring项目进行交互协作,建议采用Spring进行开发的时候,可以尝试使用这个IDE 2.下载与安装 登录https:// ...
- 使用Spring Tool Suite (STS)新的工作空间无需再配置
在你的新的工作空间中找到比如 F:\java-wokespace\你的新的工作空间名称\.metadata\.plugins\org.eclipse.core.runtime\.settings 找到 ...
- spring的IDE:STS (Spring Tool Suite)
STS 比 eclipse 新增的内容: 在 New =>Other... 中新增了 Spring 文件夹,里面新增了 Spring Legacy Project 和 Spring Starte ...
- Spring MVC -- Spring Tool Suite和Maven(安装Tomcat、JDK)
Spring提供了自己的集成开发环境(IDE),称为Spring Tool Suite(STS),它可能是构建Spring应用程序的最佳IDE了.STS捆绑了Maven作为其默认依赖管理工具,因此不需 ...
- Spring Tool Suite(STS)安装
Spring Tool Suite是一个基于Eclipse的开发环境,可以自定义用于开发Spring应用程序.它提供了一个随时可用的环境来实现,调试,运行和部署Spring应用程序,包括Pivotal ...
- Eclipse 下Spring cloud项目集成开发插件Spring Tool Suite (STS) 安装
安装eclipse插件 Help->Eclipse Marketplace-> Search中查找"Spring Tool Suite (STS) for Eclipse&quo ...
- 使用spring tool suite(STS)工具创建spring boot项目和出现错误后的处理
一.先下载配置maven环境 1.下载地址:http://maven.apache.org/download.cgi windows下下载zip文件 2.解压后放到某个文件目录下 3.配置环境变量 ( ...
随机推荐
- USB CCID协议和PC/SC标准
CCID是USB Chip/Smart Card Interface Devices,也就是USB芯片智能卡接口设备,是USB规范下的一种设备类型.就像HID设备一样,需要参考USB规范来写固件程序来 ...
- Qt setStyleSheet 添加背景色/背景图片(取消背景色,读取本地文件作为背景色)
容易搞定,mainWindow 是一个QWidget.// 设置背景色为蓝色mainWindow.setStyleSheet("background-color:blue;"); ...
- 2015暑假acm短训小结
时间很快,短训已经结束,短短20天,心里有一些思绪想要记下. 收获: 从最近发的随笔中可以看出,做得最多的是搜索——Dfs,Bfs.对于搜索,如何描述状态,如何压缩状态,如何决定下一个结点,是否可以剪 ...
- 解题报告 HDU1944 S-Nim
S-Nim Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem De ...
- ECSHOP常用函数
lib_time.php gmtime() #获得当前格林威治时间的时间戳 /$0 server_timezone() #获得服务器的时区 /$0 local_mktime($hour = NULL ...
- web前端如何让网页布局稳定性和标准性?
刚开始学css+div布局的同学们,都比较困惑和难写的就是兼容性的问题了,特别是ie6等低版本的浏览器,随意国内逐步慢慢消失取代,但是现阶段还是会有点考虑因素再里面.我们写的网页布局怎么样才是合理的, ...
- springmvc+mybatis+redis(转)
最近在学习redis的使用方法,它的本地使用方法比较简单,只需要先启动Redis服务器,然后运行测试代码即可.但是现在我想要在网站上访问数据库的时候采用Redis缓存,问题就出来了.要么是缓存直接失效 ...
- redis(五)redis与Mybatis的无缝整合让MyBatis透明的管理缓存二
在上一篇文中的Cahe类存在各种问题如:一直使用同一个连接,每次都创建新的Cache,项目中老是爆出connection timeout 的异常,存储的key过长等等一系列的问题,解决问题最好的办法就 ...
- 说服式设计(persuasive design)的行为模型
转自:http://www.sharetk.com/html/ued/User-Research/1404.html 一 模型简介 BJ Fogg提出了一个新的理解人类行为的模型,他称之为Fogg b ...
- #AzureChat - 自动伸缩和虚拟机
我们很高兴地推出再一次 #AzureChat,这是 @WindowsAzure 团队为您精心打造的一个在 Twitter 上进行的聊天活动! #AzureChat 专注于云计算的各个方面以及云开发的最 ...