2015-03-31 43 views
-2

我想2小時時鐘時間從milliseconds.I嘗試如下得到AM/PM如何使用簡單的日期格式

public class GetTimeFormat{ 
    static SimpleDateFormat format; 
    public static String convertDate(String dateformat,Long date){ 
     format = new SimpleDateFormat(dateformat); 
     String formattedDate = format.format(date); 
     return formattedDate; 
    } 

public static void main(String args[]) 
{ 

    long cal=1386059340010l; 

    String dateString=convertDate("MMM dd,yyyy HH:mm:ss a", cal); 
    System.out.println(dateString); 

} 
} 

對於上述毫秒的相應的日期是Tue Dec 03 13:59:00 IST 2013

所以我以爲我會得到格式化的日期作爲Dec 03,2013 1:59:00 PM

而是我得到Dec 03,2013 13:59:00 PM

沒有需要上午/下午在24小時制,並在12小時上午/下午需要

但在我的方式,我得到的時間在24小時格式+下午。

Can任何機構都可以告訴我這裏有什麼錯誤?

的另一個問題是,爲什麼在ideone其顯示不僅在ideone Dec 03,2013 08:29:00 AM 但我已經檢查過很多在線編譯器和每一個地方它的顯示相同,但​​在本地計算機上的時間是不同的(13:59)

+2

查看示例部分中顯示的['SimpleDateFormat'](http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)10秒鐘:'「h: mm a「 - > 12:08 PM' – JimmyB 2015-03-31 10:12:34

回答

-1

使用hh而不是日期格式的HH。因此,與"MMM dd,yyyy hh:mm:ss a"

1

更換"MMM dd,yyyy HH:mm:ss a"您需要在格式模式使用小寫h

String dateString = convertDate("MMM dd,yyyy h:mm:ss a", cal); 

你可以看到here爲格式模式,包括覆蓋這種特定情況下的例子的完整參考。

+0

感謝您的回答,請您回答爲什麼它不能在ideone(我的問題的第二部分)中工作 – rocking 2015-03-31 10:16:51

+0

您是否意識到不同的['TimeZone's] (http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html)? - 如果您沒有明確指定要使用的TimeZone,則結果將根據爲運行代碼的*機器配置的默認時區顯示。 – JimmyB 2015-03-31 10:18:31