您的位置:首页 > 编程语言 > Java开发

JAVA闰年的0229日期问题

2016-05-05 15:02 281 查看
在使用jdk自己提供的DateFormat类时,如果不指定年,那么解析2月29日会出错。会认为这是一个非法的日期。具体见代码:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatTest {
public static void main(String[] args){
DateFormat dateformat = new SimpleDateFormat("MMddHHmmss");
try {
dateformat.setLenient(false);
Date date = dateformat.parse("0229084700");
System.out.println(date.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}
执行时会报错,报错信息如下:
java.text.ParseException: Unparseable date: "0229084700"
at java.text.DateFormat.parse(Unknown Source)
at DateFormatTest.main(DateFormatTest.java:11)
使用apache的commons的DateUtils类,它的处理稍微特殊,如果不指定年,0229则会解析为1970年的3月1日,不会报错,但同样是有问题的,使用到此类的话,需注意此情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: