2013-08-19 29 views
3

我有一個日期爲字符串,需要使用AM/PM將其轉換爲時間戳。我嘗試了下面的方法,我得到了適當的日期格式,但沒有在AM/PM中獲得。
如何在java中使用AM/PM獲取時間戳

任何人都可以幫忙嗎?

代碼片段:

String dateString = "10/10/2010 11:23:29 AM"; 

SimpleDateFormat sfdate = new SimpleDateFormat("MM/dd/yyy HH:mm:ss a"); 
    Date date = new Date(); 
    date = sfdate.parse(dateString); 
    System.out.println(new Timestamp(date.getTime())); 

這使我的輸出如下:

2010-10-10 11:23:29.0 

但我需要像這樣

2010-10-10 11:23:29.00000000 AM 

請幫助我,請。

回答

1

嘗試:

System.out.println(sfdate.format(date)); 

當你的最後一行,而不是你在當前的一個。

+0

我不需要它在字符串中,我需要它作爲TimeStamp,因爲我必須在數據庫字段中插入該值,該字段被定義爲TIMESTAMP –

+0

@muthukumar,實際上時間戳值存儲爲1970年1月1日以來的毫秒數,所以這就是你想要存儲在你的數據庫中。其餘的只是一個代表性的問題。只需創建一個時間戳並將其傳遞給數據庫。 – svz

+0

您可以將字符串格式化爲SQL,或者發送原始毫秒。細節取決於數據庫類型和架構,您尚未提供這些數據庫類型和架構以便爲您提供指導。 – jgm

2

爲什麼要創建一個時間戳?時,你可以:

  SimpleDateFormat sfdate = new SimpleDateFormat("MM/dd/yyy HH:mm:ss a"); 
      Date date = new Date(); 
      date = sfdate.parse(dateString); 
      System.out.println(sfdate.format(date)); 

輸出:

10/10/10 11:23:29 AM 
+0

我不需要它在字符串中,我需要它作爲TimeStamp,因爲我必須將該值插入定義爲TIMESTAMP的DB字段中。 –

0

Timestamp.toString()打印到特定的格式:yyyy-mm-dd hh:mm:ss.fffffffff。 Timestamp對象本身應該是正確的,如果這就是你想要的。

如果您想要定義另一種格式以便隨意打印,則需要格式化Date對象,並使用適合您要查找的輸出格式的格式。

+0

好的..謝謝你的建議。我認爲這是行不通的。讓我試試看,回到你身邊。謝謝 –

0

你所看到的是Timestamp.toString()的結果。 Timestamp對象實例中的實際是有效的。

如果您在隨後的SQL操作中遇到錯誤,請將該錯誤與您正在使用的代碼一起發佈。

+0

哦..我不確定這件事..我會檢查它並回來。謝謝你的寶貴建議 –

+0

我已經嘗試過了。我試圖將這個字符串08/06/2013 12:08:00 AM轉換爲timeStamp並插入到數據庫中。但我看到它被插入爲PM而不是AM :(CAnu請幫助 –

+0

請更新您的問題與您用於更新的代碼。 – Joe