JAVA自学教程之其他对象API(二)Date类 & Calendar类(重点掌握)



JAVA自学教程之其他对象API(二)Date类 & Calendar类(重点掌握)。

Date类(重点)

开发时,会时常遇见时间显示的情况,所以必须熟练Date的应用

 

  1. <span style=”font-family:KaiTi_GB2312;font-size:18px;”><strong>import java.util.*;
  2. public class Main
  3. {
  4.     public static void main(String[] args){
  5.         long l = System.currentTimeMillis();//1414079892981
  6.         System.out.println(l);
  7.         Date  date = new Date();//当前时间
  8.         System.out.println(date);
  9.         Date date2 = new Date(1414079892981l);//将毫秒值封装成对象
  10.         System.out.println(date2);
  11.     }
  12. }</strong></span>

 

日期对象和毫秒值之间的转换问题。

毫秒值->日期对象 :1.new Date(TimeMillis);2.setTime()

故:可以通过Date对象的方法对某年、月、日进行操作

日期对象->毫秒值 :getTime();

故:可以通过具体的数值进行运算,两个日期对象无法减,变成毫秒就可以减,得到相隔几天

 

Boolean after(Date when)  测试此日期是否在指定日期之后。

Boolean before(Date when) 测试此日期是否在指定日期之前。

Object clone() 返回此对象的副本。

int compareTo(Date anotherDate) 比较两个日期的顺序。

Boolean equals(Object obj) 比较两个日期的相等性。

 


把日期对象转成字符串。

 

  1. <span style=”font-family:KaiTi_GB2312;font-size:18px;”><strong>import java.text.DateFormat;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. public class Main
  5. {
  6.     public static void main(String[] args){
  7.         MethodDemo();
  8.     }
  9.     public static void MethodDemo(){//对日期对象格式化 转换成日期格式的字符串
  10.         Date date = new Date();
  11.         //获取日期对象,具备默认的风格
  12.         DateFormat dateFormat = DateFormat.getDateInstance();//获取日期工厂
  13.         String str_Date = dateFormat.format(date);
  14.         System.out.println(str_Date);//2014-10-24
  15.         DateFormat dateFormat2 = DateFormat.getDateTimeInstance();//获取日期加时间工厂
  16.         String str_Date2 = dateFormat2.format(date);
  17.         System.out.println(str_Date2);//2014-10-24 0:30:22
  18.         //指定格式 FULL:2014年10月24日 星期五   LONG:2014年10月24日  SHORT:14-10-24
  19.         DateFormat dateFormat3 = DateFormat.getDateInstance(dateFormat.FULL);//获取日期工厂
  20.         String str_Date3 = dateFormat3.format(date);
  21.         System.out.println(str_Date3);
  22.         //2014年10月24日 星期五 上午12时39分27秒
  23.         DateFormat dateFormat4 = DateFormat.getDateTimeInstance(dateFormat.FULL,dateFormat.LONG);
  24.         String str_Date4 = dateFormat4.format(date);
  25.          System.out.println(str_Date4);
  26.          //自定义风格 使用的是DateFormat类中的format方法,其中SimpleDateFormat是DateFormat的子类
  27.          DateFormat dateFormat5 = new SimpleDateFormat(“yyyy#MM#dd”);
  28.          String str_Date5 = dateFormat5.format(date);
  29.          System.out.println(str_Date5);
  30.     }
  31. }</strong></span>


字符串转日期对象

 

 

  1. <span style=”font-family:KaiTi_GB2312;font-size:18px;”><strong>import java.text.DateFormat;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class Main
  6. {
  7.     public static void main(String[] args)throws ParseException{
  8.         MethodDemo();
  9.     }
  10.     //字符串转Date对象 使用的是parse方法
  11.     public static void MethodDemo() throws ParseException{
  12.         //默认风格
  13.         String str_date = ”2014-10-24″;
  14.         DateFormat dateFormat = DateFormat.getDateInstance();
  15.         Date date = dateFormat.parse(str_date);//抛异常
  16.         System.out.println(date);
  17.         //自定义风格
  18.         String str_date2 = ”2014年10月24日”;
  19.         DateFormat dateFormat2 = DateFormat.getDateInstance(DateFormat.LONG);
  20.         Date date2 = dateFormat2.parse(str_date2);//抛异常
  21.         System.out.println(date2);
  22.         String str_date3 = ”2014年–10月–24日”;
  23.         DateFormat dateFormat3 = DateFormat.getDateInstance(DateFormat.LONG);
  24.         dateFormat3 = new SimpleDateFormat(“yyyy年–MM月–dd日”);
  25.         Date date3 = dateFormat3.parse(str_date3);//抛异常
  26.         System.out.println(date3);
  27.     }
  28. }</strong></span>

 

Date类练习

2014-10-24 到 2012-12-25日有多少天

1.将字符串转成Date对象

2.将Date对象转成毫秒

3.相减得天数

 

  1. import java.text.DateFormat;
  2. import java.text.ParseException;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class Main
  6. {
  7.     public static void main(String[] args)throws ParseException{
  8.         MethodDemo();
  9.     }
  10.     public static void MethodDemo() throws ParseException{
  11.         String str1 = ”2014-10-24″;
  12.         String str2 = ”2012-12-25″;
  13.         Date date1 = new Date();
  14.         Date date2 = new Date();
  15.         DateFormat dateFormat1 = DateFormat.getDateInstance();
  16.         dateFormat1 = new SimpleDateFormat(“yyyy-MM-dd”);
  17.         date1 = dateFormat1.parse(str1);
  18.         date2 = dateFormat1.parse(str2);
  19.         long time1 = date1.getTime();
  20.         long time2 = date2.getTime();
  21.         long time = Math.abs(time1 - time2);
  22.         int day = Getday(time);
  23.         System.out.println(day+”天”);
  24.     }
  25.     public static int Getday(long time){
  26.         return (int)(time/1000/60/60/24);
  27.     }
  28. }

Calendar类

 

 

  1. public class Main
  2. {
  3.     public static void main(String[] args){
  4.         MethodDemo();
  5.     }
  6.     public static void MethodDemo() {
  7.         Calendar ca = Calendar.getInstance();
  8.         int year = ca.get(Calendar.YEAR);
  9.         int mon = ca.get(Calendar.MONTH)+1;//注意要+1,0代表一月
  10.         int day = ca.get(Calendar.DAY_OF_MONTH);
  11.         int week = ca.get(Calendar.DAY_OF_WEEK);//注意国外和我们不一样
  12.         //2014-10-24-星期五
  13.         System.out.println(year+”-”+mon+”-”+day+”-”+GetWeek(week));
  14.     }
  15.     private static String GetWeek(int i) {
  16.         // TODO Auto-generated method stub
  17.         String[] week = {“”,”星期天”,”星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”};
  18.         return week[i];
  19.     }
  20. }

练习:

 

 

  1. import java.util.Calendar;
  2. public class Main
  3. {
  4.     public static void main(String[] args){
  5.         int year = 2014;
  6.         showyear(year);//判断某一年的二月有几天
  7.         //showday();
  8.     }
  9.     private static void showyear(int year) {
  10.         Calendar ca = Calendar.getInstance();
  11.         ca.set(year,2,1);//设置某年3月1日时间
  12.         ca.add(Calendar.DAY_OF_MONTH, -1);//3月的前一天
  13.         MethodDemo(ca);
  14.     }
  15.     private static void showday() {
  16.         Calendar ca = Calendar.getInstance();
  17.         ca.set(2015,10,25);//设置2015.11.25时间
  18.         ca.add(Calendar.DAY_OF_MONTH, -1);//时间偏移-》2013
  19.         MethodDemo(ca);//2015-10-24-星期二
  20.         ca.add(Calendar.DAY_OF_MONTH, 10);//超过会自动进一个月
  21.         MethodDemo(ca);
  22.     }
  23.     public static void MethodDemo(Calendar ca) {
  24.         int year = ca.get(Calendar.YEAR);
  25.         int mon = ca.get(Calendar.MONTH)+1;
  26.         int day = ca.get(Calendar.DAY_OF_MONTH);
  27.         int week = ca.get(Calendar.DAY_OF_WEEK);
  28.         int hour = ca.get(Calendar.HOUR);
  29.         int minute = ca.get(Calendar.MINUTE);
  30.         int second = ca.get(Calendar.SECOND);
  31.         System.out.print(year+”-”+mon+”-”+day+”-”+GetWeek(week)+”-”+hour+”:”);
  32.         if(minute>9){
  33.             System.out.println(minute+”:”+second);
  34.         }
  35.         else {
  36.             System.out.println(“0″+minute+”:”+second);
  37.         }
  38.     }
  39.     private static String GetWeek(int i) {
  40.         String[] week = {“”,”星期天”,”星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”};
  41.         return week[i];
  42.     }
  43. }