java java.text.ParseException中的Date Parse Exception

时间:2016-10-17 07:13:18

标签: java android

我的日期字符串是“2016年10月17日下午12:17” 我的日期解析方法是:

public static String formatDate(String dateString) {
    String stringDate = "";
    try {
        //Mar 11 2016 2:21PM
        if (dateString != null) {
            SimpleDateFormat dt = new SimpleDateFormat("MMM dd yyyy hh:mma");

            Date date = dt.parse(dateString);

            // *** same for the format String below
            SimpleDateFormat dt1 = new SimpleDateFormat("EEE , hh:mm a");
            stringDate = dt1.format(date);
        }
        return stringDate;
    } catch (ParseException parseException) {
        Log.e("date format", "" + parseException.getMessage());
    }
    return stringDate;
}

英语可以正常使用,但当我将我的应用语言改为印地语或其他任何我正在获得例外时。

java.text.ParseException: Unparseable date: "Oct 17 2016 12:17PM" (at offset 0)

我做什么?

2 个答案:

答案 0 :(得分:1)

您需要设置区域设置英语

SimpleDateFormat dt = new SimpleDateFormat("MMM dd yyyy hh:mma", Locale.ENGLISH);

答案 1 :(得分:1)

 public class Practice {
 public static void main(String...args) {
 String day,month, finalDay;
 try {
 DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
 String  currentDateTimeString = df.format(new Date());


     //String currentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
     SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy", Locale.US);
     Date date = format.parse(currentDateTimeString);


     SimpleDateFormat dayFormat = new SimpleDateFormat("dd");


     day = dayFormat.format(date);


     SimpleDateFormat monthFormat = new SimpleDateFormat("MM");

     month = monthFormat.format(date);
     System.out.print("My day"+ day);
     System.out.println("My month"+ month);




 } catch (Exception e) {
     System.out.println("Hello exception "+ e.getMessage());
     e.printStackTrace();
 }

} }