Java - String標準格式轉換Date(yyyy-MM-dd HH:mm:ss)

最近在接收一個Android項目,需要連接webService,於是要封裝SOAP對象,服務器接收的時間字段是datetime類型,原本我以爲封裝SOAP對象時候,String類型解決一切,但是錯了。服務器只認可datetime(“yyyy-MM-dd HH:mm:ss”)。

在設計程序數據結構時候,一切時間字段都自動轉換成String類型,用過Android本地數據庫,大夥應該知道,會使用SQLite,它並不支持Date類型存儲,只好轉換成TEXT,再存到數據庫。

但是再利用時候,就有問題了。於是,String轉換Date,很鬱悶,通常都是Date轉換String,這些代碼馬上解決:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date=new java.util.Date();
String str=sdf.format(date);

代碼生疏,於是網上百度了一陣,String轉換Date,好多文章是忽悠別人,通常搜索到以下的做法:

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = new Date();
        String str = "2015-02-10 22:00:00";
        try {
            d = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(str);
            System.out.println("DateTime>>>>>>: " + d);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

運行結果是:DateTime>>>>>>: Tue Feb 10 22:00:00 CST 2015

這與我想要的結果Date(yyyy-MM-dd HH:mm:ss),完全不同,況且,封裝在SOAP時,程序會報錯Tue Feb 10 22:00:00 CST 2015無法識別

後來終於是找到了我想要的結果Date(yyyy-MM-dd HH:mm:ss)

於是,我總結了以下,編寫了測試程序,加深理解:

        String string = "2015-02-10 22:00:00";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d1;
        try {
            d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(string);
            System.out.println("DateTime d1>>>>>>: " + d1);
            String d2 = format.format(d1);
            System.out.println("DateTime d2>>>>>>: " + d2);
            Date d3;
            d3 = format.parse(d2);
            System.out.println("DateTime d3>>>>>>: " + format.format(d3));
        } catch (ParseException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

代碼雖易,但真正有幾個人真正理解,又在關鍵時候想出來呢?

Sometime it is good to fall to really know where you stand.

Good Night

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章