????????? Calendar ???浽?????
import java.io.*;
import java.util.*;
public class WhatIsCalendarRead
{
public static void main(String[] args) throws Exception{
ObjectInputStream in =
new ObjectInputStream(
new FileInputStream("calendar.out"t);
Calendar cal2 = (Calendar)in.readObject();
Calendar cal1 = Calendar.getInstance();
cal1.set(2000?? 7?? 1?? 0?? 0?? 0);
if (cal1.equals(cal2))
System.out.println("Equals"t;
else
System.out.println("NotEqual"t;
System.out.println("Old calendar "+cal2.getTime().getTime());
System.out.println("New calendar "+cal1.getTime().getTime());
cal1.set(Calendar.MILLISECOND?? 0);
cal2 = (Calendar)in.readObject();
if (cal1.equals(cal2))
System.out.println("Equals"t;
else
System.out.println("NotEqual"t;
System.out.println("Processed Old calendar "+cal2.getTime().getTime());
System.out.println("Processed New calendar "+cal1.getTime().getTime());
}
}
???????????????????????????????????????洢???????????е??????
????NotEqual
????Old calendar 965113200422 <------------ ????λ??MilliSecond???????й?
????New calendar 965113200059 <-----------/
????Equals
????Processed Old calendar 965113200000
????Processed New calendar 965113200000
???????????????????????Calendar ??????????? set() ????????????????????? JavaDoc ???????μ?????????????????
????Calendar cal1 = Calendar.getInstance();
????cal1.set(2000?? 7?? 31?? 0?? 0 ?? 0); //2000-8-31
????cal1.set(Calendar.MONTH?? Calendar.SEPTEMBER); //????? 2000-9-31????? 2000-10-1
????cal1.set(Calendar.DAY_OF_MONTH?? 30); //???? Calendar ????? 2000-10-1??????????????? 2000-10-30
????System.out.println(cal1.getTime()); //???????2000-9-30????? Calendar ????????????????????
?????? Calendar ??????У?get() ?? add() ???? Calendar ????????Set() ????????????????????????Щ?????????????????????????????
????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 ????????????????·?????????????