java.util 包提供了 Date 類來封裝當前的日期和時間。 Date 類提供兩個構造函數來實例化 Date 對象。
第一個構造函數使用當前日期和時間來初始化對象。
Date
public static void methodDate() { // currentTimeMillis :返回以毫秒為單位的當前時間。 這個應該是system中的方法。 Date date1=new Date();//默認當前時間 Date date2=new Date(System.currentTimeMillis()-1000000L); System.out.println(date1); System.out.println(date2); //日期比較的方法 boolean b1=date1.before(date2);//date1是否在date2之前 System.out.println(b1); boolean b2=date1.after(date2);//date1是否在date2之后 System.out.println(b2); boolean b3=date1.equals(date2);//date1是否等於date2 System.out.println(b3); int b4=date1.compareTo(date2);//date1和date2進行比較 System.out.println(b4); if (b4==0) { System.out.println("date1==date2"); } else if(b4==1){ System.out.println("date1>date2"); } else { System.out.println("date1<date2"); } }
Date轉字符串格式(日期進行格式化)
public static void methodSimpleDateFormat() { Date date=new Date();//當前時間 //進行格式化 String pattern="yyyy-MM-dd hh:mm:ss.ms";//設置格式 SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern); String myDate=simpleDateFormat.format(date); System.out.println(myDate); //一句話:得到當前時間的字符串格式 //String nowStr=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.ms").format(new Date()); }
字符串轉Date格式(字符串進行解析),自定義時間加try或throws
public static void methodStringToDate() { String string="2010/1/5 10:15:20"; String pattern="yyyy/MM/dd hh:mm:ss";//設置對應格式 SimpleDateFormat simpleDateFormat=new SimpleDateFormat(pattern); //把字符串進行解析 try { Date date=simpleDateFormat.parse(string); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } }
Calendar:它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日歷字段之間的轉換提供了一些方法,並為操作日歷字段(例如獲得下星期的日期)提供了一些方法。

public static void methodCalendar() { //創建日歷類對象(默認時間是當前時間) Calendar calendar=Calendar.getInstance();//public static Calendar getInstance() //通過getTime()方法得到Date對象 Date date=calendar.getTime(); System.out.println(date); //如何獲取日歷中某一個部分的數據? //比如年、月(從0開始算)、日等等 int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH)+1; int day1=calendar.get(Calendar.DATE); int day2=calendar.get(Calendar.DAY_OF_MONTH); int hour=calendar.get(Calendar.HOUR);//小時 int minute=calendar.get(Calendar.MINUTE);//分鍾 int second=calendar.get(Calendar.SECOND);//秒數 int msecond=calendar.get(Calendar.MILLISECOND);//毫秒 //星期 //int week1=calendar.get(Calendar.WEDNESDAY); //int week2=calendar.get(Calendar.WEEK_OF_YEAR); //int week3=calendar.get(Calendar.WEEK_OF_MONTH); //星期:從星期天開始到星期六結束,分別用1到7表示 int weekDay=calendar.get(Calendar.DAY_OF_WEEK); if (weekDay==Calendar.MONDAY) { //判斷是否是星期一 } String[] weeks={"日","一","二","三","四","五","六"}; System.out.println("年份:"+year); System.out.println("月份:"+month); System.out.println("日期:"+day1+"或"+day2); System.out.println("星期"+weeks[weekDay-1]); } //Calendar 的自定義時間,自定義時間加try或throws public static void methodCalendar2() { Calendar calendar=Calendar.getInstance(); try { //設置別的時間 String time="2010-1-5"; SimpleDateFormat sdt=new SimpleDateFormat("yyyy-MM-dd"); Date date =sdt.parse(time); calendar.setTime(date); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } System.out.println(calendar.getTime());//獲得年份 } public static void methodCalendar3() { Calendar calendar=Calendar.getInstance(); //日期的加減操作:add或roll方法 calendar.add(Calendar.YEAR, 1);//年份+1 calendar.add(Calendar.MONTH, 1);//月份+1 calendar.add(Calendar.DATE, -1);//日期-1 calendar.roll(Calendar.YEAR, -10); System.out.println(calendar.getTime()); }
一般情況下,Date所提供的功能非常的有限,所以比較常用的是GregorianCalendar.

public static void testGregorianCalendar() { //GregorianCalendar標准日歷類 //創建對象 //1 默認當前時間 //GregorianCalendar gregorianCalendar=new GregorianCalendar(); //2 按照指定年月日 //GregorianCalendar gregorianCalendar=new GregorianCalendar(1990, 10, 12); //3 按照指定年月日時分秒 GregorianCalendar gregorianCalendar=new GregorianCalendar(1990, 10, 12,10,20,30); System.out.println(gregorianCalendar.getTime()); //獲取年份、月份等 int year=gregorianCalendar.get(Calendar.YEAR); int month=gregorianCalendar.get(Calendar.MONTH)+1; //... } // public static void testCalendar() { //父類Calendar對象的創建 //前兩種都是一樣的,表示當前時間 //1 //Calendar calendar=Calendar.getInstance(); //2 //Calendar calendar=new GregorianCalendar(); //3 Calendar calendar=new GregorianCalendar(2000,1,1); } public static void testGregorianCalendar2(){ //創建子類對象 GregorianCalendar gregorianCalendar=new GregorianCalendar(); //今天是星期幾? //DateFormatSymbols封裝了關於星期、月份、時區等信息 //獲取所有星期,第一個元素是空元素 String[] weeks=new DateFormatSymbols().getWeekdays(); for (String string : weeks) { System.out.println(string); } int week=gregorianCalendar.get(Calendar.DAY_OF_WEEK);//3 System.out.println("今天是:"+weeks[week]); // //String[] months=new DateFormatSymbols().getMonths(); //for (String string : months) { //System.out.println(string); //} } //日歷對象格式化方法一, public static void testGregorianCalendar3(){ GregorianCalendar gregorianCalendar=new GregorianCalendar(); Date date=gregorianCalendar.getTime(); String pattern="yyyy年MM月dd日 hh:mm:ss"; SimpleDateFormat sdf=new SimpleDateFormat(pattern); String strDate=sdf.format(date); System.out.println(strDate); } //日歷對象格式化方法二 public static void testGregorianCalendar4() { GregorianCalendar gregorianCalendar=new GregorianCalendar(); Date date=gregorianCalendar.getTime(); //DateFormat格式化類 //DateFormat df=DateFormat.getInstance(); //格式化 //String strDate=df.format(date); //System.out.println("默認時間格式:"+strDate); //DateFormat df=DateFormat.getDateInstance(); //DateFormat df=DateFormat.getTimeInstance(); //String strDate=df.format(date); //System.out.println(strDate); DateFormat df=DateFormat.getDateTimeInstance(); String strDate=df.format(date); System.out.println(strDate); } //通過獲取不同地區不同格式的時間 public static void testGregorianCalendar5() { GregorianCalendar gregorianCalendar=new GregorianCalendar(); Date date=gregorianCalendar.getTime(); //地區(比如美國、中國) Locale[] locales={Locale.US,Locale.CHINA}; //日期格式 int[] styles={DateFormat.FULL,DateFormat.LONG,DateFormat.SHORT,DateFormat.MEDIUM}; String[] strStyles={"完整日期","長日期","短日期","普通日期"}; for (Locale locale : locales) { System.out.println(locale.getDisplayCountry()+"日期格式如下:");// for (int i = 0; i < styles.length; i++) { DateFormat dateFormat1=DateFormat.getDateInstance(styles[i], locale);//獲得日期 DateFormat dateFormat2=DateFormat.getTimeInstance(styles[i], locale);//獲得時間 System.out.print("\t"+strStyles[i]+"格式:"); System.out.println(dateFormat1.format(date)+" "+dateFormat2.format(date)); } } 美國日期格式如下: 完整日期格式:Wednesday, January 17, 2018 3:58:55 PM CST 長日期格式:January 17, 2018 3:58:55 PM CST 短日期格式:1/17/18 3:58 PM 普通日期格式:Jan 17, 2018 3:58:55 PM 中國日期格式如下: 完整日期格式:2018年1月17日 星期三 下午03時58分55秒 CST 長日期格式:2018年1月17日 下午03時58分55秒 短日期格式:18-1-17 下午3:58 普通日期格式:2018-1-17 15:58:55