java中用SimpleDateFormat 怎么把 2015-04-20T11:12:00.0+08:00 解析成 Date Calendar


 

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");//yyyy-MM-dd'T'HH:mm:ss
        Date date1 = null;
        try {
            date1 = formatter.parse("2018-11-07T18:37:42.803+08:00");
            System.out.println("先 解析成Data="+date1);//解析Data=Wed Nov 07 18:37:42 CST 2018
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sDate=sdf.format(date1);//轉換指定2格式=2018-11-07 18:37:42
        System.out.println(sDate);

 

package com.test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import org.junit.Test;


public class TestDate {
    @Test
    public void testSimpleDateFormat(){
        DateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

        Date date = new Date();
        System.out.println(dateFormat.format(date));

        String dateStr = "1990-12-12 12:12:12";
        Date date2 = null;
        try {
            date2 = dateFormat.parse(dateStr);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(date2);
        

        
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");//yyyy-MM-dd'T'HH:mm:ss
        Date date1 = null;
        try {
            date1 = formatter.parse("2018-11-07T18:37:42.803+08:00");
            System.out.println("先 解析成Data="+date1);//解析Data=Wed Nov 07 18:37:42 CST 2018
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sDate=sdf.format(date1);//轉換指定2格式=2018-11-07 18:37:42
        System.out.println(sDate);
        
        String timeStr = "2017-02-23T00:00:00.0+08:00";

        
        SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        try {
        Date date11 = formatter1.parse(timeStr);
        System.out.println("轉換為日期"+date11);
        System.out.println("轉換為日期獲取時間戳"+date11.getTime());
        System.out.println("轉換為日期獲取時間戳減兩小時"+(date11.getTime()-7200000));
        System.out.println("轉換為日期獲取時間戳減兩小時的日期格式"+new Date(date11.getTime()-7200000));
        } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
        
        
        
        }
    
    
    
    
}

 

用法: SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );

        這一行最重要,它確立了轉換的格式,yyyy是完整的公元年,MM是月份,dd是日期,至於HH:mm:ss

就不需要我再解釋了吧!

        PS:為什么有的格式大寫,有的格式小寫,那是怕避免混淆,例如MM是月份,mm是分;HH是24小

時制,而hh是12小時制。

1.字符串轉日期
 
2008-07-10 19:20:00 要把它轉成日期,可以用 Date date = sdf.parse( " 2008-07-10 19:20:00 " );

2.日期轉字符串

假如把今天的日期轉成字符串可用 String str = sdf.format(new Date());

        這個字符串內容的格式類似2008-07-10 19:20:00。

        透過這個API我們便可以隨心所欲的將日期轉成我們想要的字符串格式,例如希望將日期輸出成2008

年7月10日,我們可以這么寫:

        SimpleDateFormat sdf =   new SimpleDateFormat( " yyyy年MM月dd日 " );

        String str = sdf.format(new Date());

        str便會依照我們設定的格式輸出了

Calendar 
/**

     * 獲取兩個日期相差的月數

     */

    public static int getMonthDiff(Date d1, Date d2) {

        Calendar c1 = Calendar.getInstance();

        Calendar c2 = Calendar.getInstance();

        c1.setTime(d1);

        c2.setTime(d2);

        int year1 = c1.get(Calendar.YEAR);

        int year2 = c2.get(Calendar.YEAR);

        int month1 = c1.get(Calendar.MONTH);

        int month2 = c2.get(Calendar.MONTH);

        int day1 = c1.get(Calendar.DAY_OF_MONTH);

        int day2 = c2.get(Calendar.DAY_OF_MONTH);

        // 獲取年的差值 

        int yearInterval = year1 - year2;

        // 如果 d1的 月-日 小於 d2的 月-日 那么 yearInterval-- 這樣就得到了相差的年數

        if (month1 < month2 || month1 == month2 && day1 < day2)

            yearInterval--;

        // 獲取月數差值

        int monthInterval = (month1 + 12) - month2;

        if (day1 < day2)

            monthInterval--;

        monthInterval %= 12;

        int monthsDiff = Math.abs(yearInterval * 12 + monthInterval);

        return monthsDiff;

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM