????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 =
new ObjectOutputStream(
new FileOutputStream("newCalendar.out"t);
out.writeObject(cal1);
out.close();
ObjectInputStream in =
new ObjectInputStream(
new FileInputStream("newCalendar.out"t);
Calendar cal2 = (Calendar)in.readObject();
cal2.set(Calendar.MILLISECOND?? 0);
System.out.println(cal2.getTime());
}
}
??????е????????: Thu Jan 01 00:00:00 PST 1970
????????????? EPOC ????????????? Calendar ????????????????????????????? Java ?? serialize GregorianCalendar ???б???????????????????????????????У????????????????Calendar ??????? EPOCH ????????Calendar ??????????????????κ?????? EPOC ?????????????????????????????????? set() ??????????? Calendar ????μ?????Ρ?????????????????
???????μ??????????????
import java.io.*;
import java.util.*;
public class StableCalendar 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 =
new ObjectOutputStream(
new FileOutputStream("newCalendar.out"t);
out.writeObject(cal1);
out.close();
ObjectInputStream in =
new ObjectInputStream(
new FileInputStream("newCalendar.out"t);
Calendar cal2 = (Calendar)in.readObject();
cal2.get(Calendar.MILLISECOND); //????? get()????? Calendar ???
cal2.set(Calendar.MILLISECOND?? 0);//?????
System.out.println(cal2.getTime());
}
}
??????е?????: Tue Aug 01 00:00:00 PDT 2000
????????????????????? EJB ????У?????????а??? Calendar ??????? Serialize/Deserialize ???????? Calendar ?????????????????
????4. add() ?? roll() ????
????add() ?????????add ????? Calendar ????ν??м?????????????????????????????????? add(field?? -value)??
????add() ??????????
???????????????γ???????????Χ???????????????λ???????????????磺
????Calendar cal1 = Calendar.getInstance();
????cal1.set(2000?? 7?? 31?? 0?? 0 ?? 0); //2000-8-31
????cal1.add(Calendar.MONTH?? 1); //2000-9-31 => 2000-10-1??????
????System.out.println(cal1.getTime()); //????? 2000-9-30
?????????????????????????С??????????????? Calendar ???????????????????С??λ????????仯С?????
?????????????????9-31 ???? 9-30??????仯С??
????Roll() ???????????????
???????????????γ???????????Χ???????????????β??????????磺
????Calendar cal1 = Calendar.getInstance();
????cal1.set(1999?? 5?? 6?? 0?? 0?? 0); //1999-6-6?? ????
????cal1.roll(Calendar.WEEK_OF_MONTH?? -1); //1999-6-1?? ???
????cal1.set(1999?? 5?? 6?? 0?? 0?? 0); //1999-6-6?? ????
????cal1.add(Calendar.WEEK_OF_MONTH?? -1); //1999-5-30?? ????
????WEEK_OF_MONTH ?? MONTH ???С?????? roll ???????? MONTH ??Ρ?
????Date?????
????Data??Calendar??
?????????????????????r
???????????????????????????????????????????????????????????????. ??????????????Java ?????(JVM)???????????????.
????import java.util.Date;
????public class DateExample1 {
????public static void main(String[] args) {
????// Get the system date/time
????Date date = new Date();
????System.out.println(date.getTime());
????}
????}
?????????????? 2001??9??29??? ????????6:50??????? ?????????????????豸??????????? 1001803809710. ??????????У???????????????????Date ???????????????????? ???????????н???????????. ?????????????????????System.currentTimeMillis() ?????????????????.??????System.out.println(new Date());???????????Tue Nov 08 14:28:07 CST 2005
????????? ????????????????????????1970??1??1?????????????????. ??????β???????????????????????????????? ????????java.text.SimpleDateFormat ???????????? java.text.DateFormat ??????ó???.
??????????????????????
???????????????????????????????? ??????????-9??-29??-2001??. ???μ??????
?????????????????????:
????import java.text.SimpleDateFormat;
????import java.util.Date;
????public class DateExample2 {
????public static void main(String[] args) {
????SimpleDateFormat bartDateFormat =
????new SimpleDateFormat("EEEE-MMMM-dd-yyyy");
????Date date = new Date();
????System.out.println(bartDateFormat.format(date));
????}
????}
??????????????SimpleDateFormat ??????????????????"EEE-MMMM-dd-yyyy"?????????????????????. ????????????? ?????????е?ASCII ????????????????????????????????????????. EEEE??????? MMMM???£? dd????? yyyy????. ???????????????????????????????.????"EE-MM-dd-yy"?????Sat-09-29-01. ???Sun ?????Web ??????????????????????????.