天天看點

Java時間類型轉換(Date轉String、String轉Date、GMT轉Date格式 String格式 時間戳)

Date轉String格式(yyyy-MM-dd HH:mm:ss)

//擷取目前的日期
        Date date = new Date();
        //設定時間格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //轉換為String格式
        String dateStr = sdf.format(date);
           

結果:2019-08-30 15:54:02

String轉Date

String dateStr = "2019-08-30 15:56:27";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date = sdf.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
           

結果:Fri Aug 30 15:56:27 CST 2019

時間戳轉String

long time = 1485178077000L;
        //設定時間格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //轉換為String格式
        String dateStr = sdf.format(new Date(time));
        System.out.println(dateStr);
           

結果:2017-01-23 21:27:57

String轉時間戳

String strDate = "2017-01-23 21:27:57";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            long time = sdf.parse(strDate).getTime();
            System.out.println(time);
        } catch (ParseException e) {
            e.printStackTrace();
        }
           

結果:1485178077000

Date格式轉時間戳

Date date = new Date();
        long time = date.getTime();
        System.out.println(time);
           

結果:1567156766484

時間戳轉Date格式

long time = 1567156766484L;
        Date date = new Date(time);
        System.out.println(date);
           

結果:Fri Aug 30 17:19:26 CST 2019

CST字元串格式轉Date格式、String格式、時間戳

String dateStr = "Fri Aug 30 15:56:27 CST 2019";
        SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss 'CST' yyyy", Locale.ENGLISH);
        try {
            //轉換Date格式
            Date date = sdf.parse(dateStr);
            System.out.println("date格式:" + date);

            //轉換時間戳格式
            long time = date.getTime();
            System.out.println("時間戳:" + time);

            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //轉換為String格式
            String newStr = sdf.format(date);
            System.out.println("String格式" + newStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
           

結果:

Java時間類型轉換(Date轉String、String轉Date、GMT轉Date格式 String格式 時間戳)

GMT(格林威治時間)字元串格式轉Date格式、String格式、時間戳  -- CST格式

String stringDate = "Fri, 30 Aug 2019 09:39:07 GMT";
        System.out.println("格林威治時間:" + stringDate);
        //如果stringDate中沒有‘,’号,格式轉換中也不要加,保持一緻
        SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH);
        try {
            //格林威治時間字元串轉為Date格式 - 此Date是中原標準時間 GMT+8
            Date date = sdf.parse(stringDate);
            System.out.println("GMT+8 Date格式:" + date);
            //格林威治時間字元串轉為時間戳 - 此時間戳是中原標準時間 GMT+8
            long time = date.getTime();
            System.out.println("GMT+8 時間戳:" + time);

            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            //格林威治時間字元串轉為String字元串 - 此String字元串是中原標準時間 GMT+8
            String newStr = sdf.format(date);
            System.out.println("GMT+8 String格式:" + newStr);

        } catch (ParseException e) {
            e.printStackTrace();
        }
           

結果:

Java時間類型轉換(Date轉String、String轉Date、GMT轉Date格式 String格式 時間戳)

GMT(格林威治時間)字元串格式轉String格式  -- 保持GMT格式

String stringDate = "Fri, Aug 30 09:39:07 GMT 2019";
        System.out.println("格林威治時間:" + stringDate);
        //如果stringDate中沒有‘,’号,格式轉換中也不要加,保持一緻
        SimpleDateFormat gmt = new SimpleDateFormat("EEE, MMM dd HH:mm:ss 'GMT' yyyy",Locale.ENGLISH);
        try {

            // GMT轉換時間戳 - 此時間戳是格林威治時間
            long gmtTime = gmt.parse(stringDate).getTime();
            System.out.println("格林威治時間時間戳:" + gmtTime);

            // 時間戳轉換String字元串 - 此時間戳是格林威治時間
            gmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String gmtString = gmt.format(new Date(gmtTime));
            System.out.println("格林威治時間String字元串:" + gmtString);
        } catch (ParseException e) {
            e.printStackTrace();
        }
           

結果:

Java時間類型轉換(Date轉String、String轉Date、GMT轉Date格式 String格式 時間戳)

SimpleDateFormat參數對照表

這裡附上一張網上SimpleDateFormat參數對照表,隻要掌握字母規則,就可以轉換出自己需要的時間格式

字母 日期或時間元素 表示 示例
G Era 标志符 Text AD
y Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的周數 Number 27
W 月份中的周數 Number 2
D 年中的天數 Number 189
d 月份中的天數 Number 10
F 月份中的星期 Number 2
E 星期中的天數 Text Tuesday; Tue
a Am/pm 标記 Text PM
H 一天中的小時數(0-23) Number
k 一天中的小時數(1-24) Number 24
K am/pm中的小時數(0-11) Number
h am/pm 中的小時數(1-12) Number 12
m 小時中的分鐘數 Number 30
s 分鐘中的秒數 Number 55
S 毫秒數 Number 978
z 時區 General time zone Pacific Standard Time; PST; GMT-08:00
Z 時區 RFC 822 time zone -0800

繼續閱讀