2012-04-15 197 views
0

我寫這段代碼轉換串時間戳:時間戳格式匹配

String timeStamp = "2012-04-13 09:00:30"; 

    try{ 

     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     java.util.Date parsedDate = sdf.parse(timeStamp); 
     System.out.println(parsedDate.toString()); 
     java.sql.Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime()); 
     System.out.println(timestamp.toString());   

    }catch (Exception e) { 
     // TODO: handle exception 
    } 

我得到的輸出是:

2012-04-13 09:00:30.0 

但我想輸出是:

2012-04-13 09:00:30 

ie ie not need the0.0 the end

請建議

感謝,

+0

爲什麼不只是從一個轉換到另一個呢?這不僅僅對你有幫助嗎?您可以將時間戳轉換爲日期,或者其他方式... java.sql.Timestamp sqlTimeStamp = new java.sql.Timestamp(date.getTime()); 如果這還不夠,請您詳細說明一下嗎? – 2012-04-15 09:12:39

回答

0

format()的輸出始終是一個String。你到底在這裏尋找什麼?

您所抱怨的「.0」只存在於對象的字符串表示中。當它被插入數據庫時​​,它是一個時間戳,而不是一個字符串。 (當您直接查詢數據庫時,您可能會看到額外的小數點,也可能不會看到額外的小數點;這取決於您如何編寫SQL。)

+0

嗨,在數據庫端,數據類型是時間戳,我將執行此時間戳插入查詢。據你介紹,由於字符串代表我得到了額外的「.0」。因此,如果我在啓動此線程時使用我在第一篇文章中編寫的代碼,然後執行插入的時間戳,那麼它應該正常工作? – user182944 2012-04-15 05:34:09

1

您需要使用的SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    //parsing string to date 
    java.util.Date parsedDate = sdf.parse(timeStamp); 
    //invoking toString() method which has its fixed format output 
    System.out.println(parsedDate.toString()); 

format()方法現在使用

System.out.println(sdf.format(parsedDate)); 
+0

正如我所說,我需要時間戳格式的最終​​轉換,但使用格式,返回類型是字符串。請建議如何轉換成java.sql.timestamp。 – user182944 2012-04-15 04:49:27

+0

你已經正確地轉換了,但是當你打印時間戳的實例時,它的toString方法被執行了,其中涉及到第二部分 – 2012-04-15 11:34:34

0

再次使用自衛隊這樣

System.out.println(sdf.format(parsedDate)); 
+0

嗨,忘記了syso。我需要將字符串轉換爲時間戳並將其插入到數據庫中。如果我使用格式,那麼返回類型是字符串,而不是時間戳 – user182944 2012-04-15 04:54:05