天天看點

Java基礎之日期Date日期格式化Calendar

Date

  • Date類 
  • 是java.util.Date; 而非 java.sql.Date,此類是給資料庫通路的時候使用的
  • 時間原點概念
  • 所有的資料類型,無論是整數,布爾,浮點數還是字元串,最後都需要以數字的形式表現出來。
  • 零這個數字,就代表Java中的時間原點,其對應的日期是1970年1月1日 8點0分0秒 。
  • 所有的日期,都是以為這個0點為基準,每過一毫秒,就+1。
package date;
 
//
import java.util.Date;
 
public class TestDate {
 
    public static void main(String[] args) {
 
        // 目前時間
        Date d1 = new Date();
        System.out.println("目前時間:");
        System.out.println(d1);
        System.out.println();
        // 從1970年1月1日 早上8點0分0秒 開始經曆的毫秒數
        Date d2 = new Date(5000);
        System.out.println("從1970年1月1日 早上8點0分0秒 開始經曆了5秒的時間");
        System.out.println(d2);
 
    }
}
           

目前時間:

Fri Jan 18 15:14:06 CST 2019

從1970年1月1日 早上8點0分0秒 開始經曆了5秒的時間

Thu Jan 01 08:00:05 CST 1970

  • getTime() 得到一個long型的整數
  •  目前日期的毫秒數
  • new Date().getTime() 和 System.currentTimeMillis() 是一樣的

日期格式化

  • SimpleDateFormat 日期格式化類
  • y 代表年
  • M 代表月
  • d 代表日
  • H 代表24進制的小時
  • h 代表12進制的小時
  • m 代表分鐘
  • s 代表秒
  • S 代表毫秒
package date;
  
//
import java.text.SimpleDateFormat;
import java.util.Date;
  
public class TestDate {
  
    public static void main(String[] args) {
          
        //y 代表年
        //M 代表月
        //d 代表日
        //H 代表24進制的小時
        //h 代表12進制的小時
        //m 代表分鐘
        //s 代表秒
        //S 代表毫秒
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS" );
        Date d= new Date();
        String str = sdf.format(d);
        System.out.println("目前時間通過 yyyy-MM-dd HH:mm:ss SSS 格式化後的輸出: "+str);
         
        SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd" );
        Date d1= new Date();
        String str1 = sdf1.format(d1);
        System.out.println("目前時間通過 yyyy-MM-dd 格式化後的輸出: "+str1);
         
    }
}
           

字元串轉日期

package date;
  
//
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
  
public class TestDate {
  
    public static void main(String[] args) {
        SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
  
        String str = "2016/1/5 12:12:12";
          
        try {
            Date d = sdf.parse(str);
            System.out.printf("字元串 %s 通過格式  yyyy/MM/dd HH:mm:ss %n轉換為日期對象: %s",str,d.toString());
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          
    }
}
           

Calendar

Calendar與Date進行轉換

package date;
  
//
import java.util.Calendar;
import java.util.Date;
  
public class TestDate {
  
    public static void main(String[] args) {
        //采用單例模式擷取月曆對象Calendar.getInstance();
        Calendar c = Calendar.getInstance();
          
        //通過月曆對象得到日期對象
        Date d = c.getTime();
  
        Date d2 = new Date(0);
        c.setTime(d2); //把這個月曆,調成日期 : 1970.1.1 08:00:00
    }
}