1. 程式人生 > >Java SimpleDateFormat進行日期格式化

Java SimpleDateFormat進行日期格式化

一,為啥要用SimpleDateFormat

眾所周知,Java中的日期類是Date,然後日期預設的輸出樣式很奇怪哦,是這樣子的:

package org.maoge.common;
import java.util.Date;
public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        //預設輸出格式
        Date date=new Date();
        System.out.println(date);//Fri Oct 27 16:56:37 CST 2017
} }

真的好像說,這是什麼鬼啊,神經病啊,老闆要是發現你在前端把日期顯示成這樣子,非要….覺得你很有個性不可。

OK,所以就很需要將日期以一種我們想要的格式顯示出來

另外,有時候我們需要指定一個日期,所以也需要將字串型別轉換為Date型別,我們往往會以為是這樣子的:

這裡寫圖片描述

首先我們就注意到了new Date()方法被劃上了刪除線,這個就表示該方法在定義的時候被@Deprecated註解註解過了,意思是該方法過期了不建議使用了可能有問題了,反正咱知道這個方法最好不用就是了。而且,確實也報錯了,所以我們也需要一種將字串轉換為日期的方法

SimpleDateFormat就是為這兩種需要誕生滴,類庫嘛,就是前人搭棚好乘涼,而且都是牛逼的前人。

二, 日期格式化顯示

首先要記住一些標記:(注意大小寫)

年yyyy
月MM
日dd
時HH
分mm
秒ss
毫秒SS

然後直接看例子:

package org.maoge.common;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        //預設輸出格式
        Date date=new Date();
        System.out
.println(date);//Fri Oct 27 16:56:37 CST 2017 //日期格式化顯示,首先定義格式 SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");//顯示20171027格式 SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");//顯示2017-10-27格式 SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//顯示2017-10-27 10:00:00格式 SimpleDateFormat sdf4=new SimpleDateFormat("yyyy年MM月dd日HH時mm分ss秒");//顯示2017年10月27日10時00分00秒格式 //將格式應用於日期 System.out.println(sdf1.format(date));//20171027 System.out.println(sdf2.format(date));//2017-10-27 System.out.println(sdf3.format(date));//2017-10-27 17:11:13 System.out.println(sdf4.format(date));//2017年10月27日17時11分13秒 } }

三,將字串轉換為對應日期

注意,因為可能定義的格式和實際字串提供的格式不符合,所以會丟擲異常

package org.maoge.common;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
    public static void main(String[] args) {
        //首先定義格式
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //按格式進行轉換
        String strDate1="20151010";//符合sdf1格式
        String strDate2="20171027 10:00:00";//不符合格式
        try {
            Date date1=sdf1.parse(strDate1);
            System.out.println(date1);//正常輸出Sat Oct 10 00:00:00 CST 2015
            Date date2=sdf2.parse(strDate2);//報錯java.text.ParseException: Unparseable date: "20171027 10:00:00"
            System.out.println(date2);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}