我正在尝试将April 18 2016 10:41 AM
解析为04/18/2016 10:41
。这是我的代码
private String dateFormat(String strCurrentDate) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("mmmm dd yyyy hh:mm Z");
Date newDate = null;
newDate = format.parse(strCurrentDate);
format = new SimpleDateFormat("MM/dd/yyyy hh:mm");
String date = format.format(newDate);
Log.d("DATE_FORMATE_TESTING", date);
return date;
}
但它会出现以下错误
04-18 10:41:43.834 7526-7526/gps.clock.com W/System.err: java.text.ParseException: Unparseable date: "April 18 2016 01:41 PM" (at offset 0)
04-18 10:41:43.834 7526-7526/gps.clock.com W/System.err: at java.text.DateFormat.parse(DateFormat.java:579)
04-18 10:41:43.834 7526-7526/gps.clock.com W/System.err: at gps.clock.com.MainActivity.dateFormat(MainActivity.java:441)
04-18 10:41:43.834 7526-7526/gps.clock.com W/System.err: at gps.clock.com.MainActivity.access$500(MainActivity.java:70)
04-18 10:41:43.834 7526-7526/gps.clock.com W/System.err: at gps.clock.com.MainActivity$1$4.onClick(MainActivity.java:303)
谁能告诉我该如何解决?为何显示Unparseable date
。我应该如何解析它?
提前谢谢。
答案 0 :(得分:3)
尝试以下代码
String strCurrentDate = "April 18 2016 10:41 AM";
SimpleDateFormat format = new SimpleDateFormat("MMM dd yyyy hh:mm a");
Date newDate = null;
try {
newDate = format.parse(strCurrentDate);
} catch (ParseException e) {
e.printStackTrace();
}
format = new SimpleDateFormat("MM/dd/yyyy hh:mm");
String date = format.format(newDate);
System.out.print(date);
答案 1 :(得分:1)
我认为您需要调整原始格式字符串。
SimpleDateFormat format = new SimpleDateFormat("mmmm dd yyyy hh:mm Z");
应该是
SimpleDateFormat format = new SimpleDateFormat("MMMM dd yyyy hh:mm a");
答案 2 :(得分:0)
在java日期格式m
和M
中,两者具有不同的含义。 m
用于解析分钟,而M
用于解析月。
在您的示例中,您使用小写m
解析月份,这会导致错误。正如@Mike M.所建议的那样,用大写字母改变你的m
。