2. Calendar 对象的容错性,Lenient 设置 我们知道特定的月份有不同的日期,当一个用户给出错误的日期时,Calendar 如何处理的呢? import java.io.*;
import java.util.*; public class WhatIsCalendar
{
public static void main(String[] args) throws Exception{
Calendar cal1 = Calendar.getInstance();
cal1.set(2000, 1, 32, 0, 0, 0);
System.out.println(cal1.getTime());
cal1.setLenient(false);
cal1.set(2000, 1, 32, 0, 0, 0);
System.out.println(cal1.getTime());
}
} 它的执行结果是: Tue Feb 01 00:00:00 PST 2000
Exception in thread "main" java.lang.IllegalArgumentException
at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:1368)
at java.util.Calendar.updateTime(Calendar.java:1508)
at java.util.Calendar.getTimeInMillis(Calendar.java:890)
at java.util.Calendar.getTime(Calendar.java:871)
at WhatIsCalendar.main(WhatIsCalendar.java:12) 当我们设置该 Calendar 为 Lenient false 时,它会依据特定的月份检查出错误的赋值。 3. 不稳定的 Calendar 我们知道 Calendar 是可以被 serialize 的,但是我们要注意下面的问题 import java.io.*;
import java.util.*; public class UnstableCalendar implements Serializable
{ public static void main(String[] args) throws Exception{
Calendar cal1 = Calendar.getInstance();
cal1.set(2000, 7, 1, 0, 0 , 0);
cal1.set(Calendar.MILLISECOND, 0);
ObjectOutputStream out =