如何使用简单的日期格式获取am / pm

时间:2015-03-31 10:09:04

标签: java simpledateformat

我希望从毫秒获得12小时的时间。我尝试如下

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小时制的am / pm和12小时制am / pm是必需的

但是按照我的方式,我得到了24小时格式+ PM的时间。

任何人都可以告诉我这里的错误吗?

另一个问题是为什么在ideone显示Dec 03,2013 08:29:00 AM 不仅在ideone中,我已经检查了许多在线编译器,并且每个地方都显示相同但在本地机器时间不同(13:59)

1 个答案:

答案 0 :(得分:1)

您需要在格式模式中使用小写h

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

您可以查看here以获取格式模式的完整参考,包括涵盖此特定情况的示例。