现在的位置: 首页 > 综合 > 正文

java中的日期相关的问题

2013年02月19日 ⁄ 综合 ⁄ 共 768字 ⁄ 字号 评论关闭

 

1.DateFormat中的setLenient(boolean flag)方法

此方法用来标志是否严格解析日期.其实很简单,就是如果你输入的日期不合法,它会不会先进行一定的计算.计算出能有合法的值,就以计算后的值为真正的值.比如说当你使用的时候有2012-02-31,2012-14-03这样数据去format,如果让setLenient(true).那么它就会自动解析为2012-03-02和2013-02-03这样的日期.如果改为setLenient(false)就会让这样出现解析异常,因为去掉了计算,而这样的数据又是不合法的,所以出现异常也是合理的.
ps:lenient是宽容的,仁慈的的意思,名字还是挺贴切的.默认使用DateFormat和SimpleDateFormat的时候,setLenient默认是true的

2.如何取得指定日期的Date对象

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
   try
{
date = formatter.parse("2012-04-12");//可能有异常
}
 catch(Exception e )
{//异常处理}

不再是以前直接使用new Date("xxxx-yy-zz")这样的形式,Date API中此方法已过期.只有new Date()方法还支持继续使用.API的解释是:

在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用Calendar 类实现日期和时间字段之间转换,使用DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。 

抱歉!评论已关闭.