2011-12-28 33 views
0

我有毫秒像「1325085788」我想轉換它在hh:mm a。我知道這一點,但回到我的時間01:34 PM而不是08:53 PM.Whats問題?如何將這毫秒轉換爲時間(hh:mm a)?

我的代碼::

String created_on = "1325085788"; 
     String pattern = "hh:mm a"; 
     SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); 

     Date date = new Date(Long.parseLong(created_on)); 

     String yourFormatedDate = dateFormat.format(date); 

     System.out.println("--------> " + yourFormatedDate); 

沒有時區問題,因爲它給我的當前時間(在印度)的iPhone應用程序

+0

您可以發佈您用於打印的代碼01:34 PM嗎?這可能有助於我們確定問題。 – kosa 2011-12-28 15:25:23

+2

你在哪裏?這聽起來像是一個時區問題。 – 2011-12-28 15:25:33

+0

聽起來像是一個時區thingy – Eugene 2011-12-28 15:26:54

回答

4

1325085788不是毫秒。這是幾秒鐘。你的期望值只有幾個數量級,但它給了你給定毫秒級的正確時間。

如果你有秒,想去一個日期,然後這樣的事情:

import static java.util.concurrent.TimeUnit.*; 

String created_on = "1325085788"; 
long millis = MILLISECONDS.convert(Long.parseLong(created_on), SECONDS); 
Date d = new Date(millis); 

之後,你的日期格式應該做的工作的其餘部分。

+0

確定比如何將它轉換成hh:mm AM/PM Formate? – 2011-12-28 15:35:31

+0

在這種情況下,MULTIPLY在解析Long後等於1000 – 2011-12-28 15:36:17

+1

等價地:'SECONDS.toMillis(Long.parseLong(createdOn))' – erickson 2011-12-28 15:45:33