2011-07-06 58 views
2

我試圖使用MIDP到秒的量轉換成格式化字符串轉換秒的量爲使用MIDP /格式化字符串黑莓

下面是我使用的代碼,但問題是,當我在設備上運行(黑莓),2個小時正在追加。所以 - formatSecondsAsDuration(1000)返回「0時02分01秒」 我想到什麼是「00:00:01」

我想既然這個SimpleDateFormat的是發生在使用我的語言環境? 我無法使用setTimeZone方法將時區設置爲UTC,我認爲這可以解決問題。

public static String formatSecondsAsDuration(long second) { 

    Date date = new Date(second); 

    return new SimpleDateFormat("HH:mm:ss").format(date); 

} 

我已經問過類似的問題 - Convert int val to format "HH:MM:SS" using JDK1.4但之後發現並不完全適合

+2

也可以添加一個引用您的[上一頁問題](http://stackoverflow.com/questions/6581281/convert-int-val-to-format-h​​hmmss-using-jdk1-4/)。這至少可以避免其他人通過提供相同的答案來浪費不必要的努力。 – mindas

+0

@mindas,道歉,我已更新問題 –

回答

5

怎麼樣很簡單的東西,如:

public static String formatSecondsAsDuration(long seconds) { 
    long hour = seconds/60/60; 
    long min = (seconds/60) - (hour * 60); 
    long sec = seconds - (min * 60) - (hour * 60 * 60); 

    return (hour < 10 ? "0" : "") + hour + ":" + 
      (min < 10 ? "0" : "") + min + ":" + 
      (sec < 10 ? "0" : "") + sec; 
} 

只要確保你真正傳遞秒(如參數名稱所示),或者修改上面的代碼以處理毫秒,如果這是您實際需要的。

編輯: 我只是碰到這種方法現在看起來像它不正是你想要什麼,並已內置到BB API跑:DateTimeUtilities.formatElapsedTime()

+0

不錯的方法,謝謝。 –