1. 程式人生 > >date SimpleDateFormat Calendar等幾種時間日期類的簡略分析

date SimpleDateFormat Calendar等幾種時間日期類的簡略分析

Calendar類

這是一個對時間操作的類

該類是一個abstract類,提供了getInstance方法來例項化Calendar類 :Calendar rightNow = Calendar.getInstance();

public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH)+1;
        int day = cal.get(Calendar.DAY_OF_MONTH);
        int week = cal.get(Calendar.WEEK_OF_MONTH);
        String weeks ="";
        switch (week) {
        case 1:weeks="星期天";
            break;
        case 2:weeks="星期一";
        break;
        case 3:weeks="星期二";
        break;
        case 4:weeks="星期三";
        break;
        case 5:weeks="星期四";
        break;
        case 6:weeks="星期五";
        break;
        default:weeks="星期六";
        break;
        }
         int hour = cal.get(Calendar.HOUR_OF_DAY);//24小時制
//         int h1 = cal.get(Calendar.HOUR);//12小時制
         int minute = cal.get(Calendar.MINUTE);
         int second = cal.get(Calendar.SECOND);
         String h,m,s; 
         if(hour<10) h = "0"+hour; else h = hour+""; 
         if(minute<10) m = "0"+minute; else m = minute+""; 
         if(second<10) s = "0"+second; else s = second+"";
         
        
    }

輸出:今天是: 2018年12月14日星期五 05:35:26

add

public abstract void add(int field,
                         int amount)

根據日曆的規則,為給定的日曆欄位新增或減去指定的時間量。例如,要從當前日曆時間減去 5 天,可以通過呼叫以下方法做到這一點:

add(Calendar.DAY_OF_MONTH, -5)

public final void set(int year, int month, int date, int hourOfDay, int minute)

設定日曆欄位 YEAR、 MONTH、 DAY_OF_MONTH、 HOUR_OF_DAY 和 MINUTE 的值。保留其他欄位以前的值。如果不需要這樣做,則先呼叫 clear()

 

引數:

year - 用來設定 YEAR 日曆欄位的值。

month - 用來設定 MONTH 日曆欄位的值。Month 值是基於 0 的。例如,0 表示 January。

date - 用來設定 DAY_OF_MONTH

 日曆欄位的值。

hourOfDay - 用來設定 HOUR_OF_DAY 日曆欄位的值。

minute - 用來設定 MINUTE 日曆欄位的值。

 

引數:

field - 日曆欄位。

amount - 為欄位新增的日期或時間量。

 

date類

兩個構造方法:

Date(): 分配 Date 物件並初始化此物件,以表示分配它的時間(精確到毫秒)

            相當於System.currentTimeMillis()

Date(long date):分配 Date 物件並初始化此物件,以表示自從標準基準時間(稱為“曆元(epoch)”,即 1970                              年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。

其他方法:

System.currentTimeMillis():獲取當前的時間戳,該時間是從1970年到現在的毫秒戳

getTime():返回自1970年1月1號以來Date物件表示 的毫秒值

setTime():  設定此 Date 物件,以表示 1970 年 1 月 1 日 00:00:00 GMT 以後 time 毫秒的時間點。

compareTo(Date t){

當前物件和t比較

當前物件大,返回正數

當前物件小,返回負數

相等,返回0

}

        public static void main(String[] args) {
        Date date1 = new Date();
        Date date2 = new Date(100000000000L);
        SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
        //設定毫秒值
        date1.setTime(15447907409690L);
        //getTime方法返回一個long型別的毫秒值
        long time = date1.getTime();
        System.out.println(time);

       //sf物件的方法
        String d = sf.format(date1);
        String s = sf.format(date2);


        System.out.println(date1);
        System.out.println(date2);
        System.out.println(d);
        System.out.println(s);
    }                    

 

SimpleDateFormat類

是一個以與語言環境有關的方式來格式化和解析日期的具體類

簡單來說就是日期格式工具類

建立物件

new SimpleDateFormat("yyyy-MM-dd")|||  構造方法中有很多格式,詳情可以檢視API

方法

format(Date date, StringBuffer toAppendTo, FieldPosition pos) 

將給定的 Date 格式化為日期/時間字串,並將結果新增到給定的 StringBuffer

date - 要被格式化為日期-時間字串的日期-時間值。

toAppendTo - 新的日期-時間文字被新增的位置。

pos - 格式化的位置。輸入時:如果需要,是一個對齊欄位。輸出時:為對齊欄位的偏移量。

parse(Stirng s)

將一個按照SimpleDateFormat的格式的String資料轉換成date型別

topattern()

返回描述此日期格式的模式字串。如返回yyyy-MM-dd;

 

    private static long f(String date) throws ParseException {
          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss");
          Date ss = sdf.parse(date);
          String format = sdf1.format(new Date());
          System.out.println(format);
          System.out.println(ss);
          long t = ss.getTime()-System.currentTimeMillis();
          t= t/1000/60/60/24;
          return t;
  }