我这个日期:2016/2/23下午4:28:46

String d="2/23/2016 4:28:46 PM";
Format formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
try {
    Date date = ((DateFormat) formatter).parse(d);
    formatter = new SimpleDateFormat("dd MMM HH:mm a");
    String notDate = formatter.format(date);
    holder.tvNotificationTime.setText(notDate);
    System.out.println(notDate);
} catch (ParseException e) {
    e.printStackTrace();
}


我希望输出为

23 Feb 4:28 PM


但是我得到的输出为

23 Feb 04:28 am


怎么了

最佳答案

在第二个H对象中使用一个DateFormat

formatter = new SimpleDateFormat("dd MMM h:mm a");


您还需要第一个格式化程序的AM / PM标记:

Format formatter = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");


请从Javadocs看到此注释:


  数字:对于格式设置,图案字母的数量是最小位数,较短的数字用零填充此数量。对于解析,除非需要将两个相邻字段分开,否则将忽略模式字母的数量。

关于java - Java中的日期转换?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35625191/

10-13 04:11