在Android中将日期“2016-06-03”转换为“2016年6月3日”

时间:2016-06-27 11:57:49

标签: android date datetime simpledateformat

我的日期格式为"2016-06-03",我必须将其转换为以下内容:

"03 JUNE 2016"

我试过如下:

 SimpleDateFormat formatter = new SimpleDateFormat("dd MMMM yyyy", Locale.ENGLISH);
 String newFormat = formatter.format("2016-06-03");

但是,低于错误:

Invalid Arguments Exception

请帮我解决这个问题。感谢。

5 个答案:

答案 0 :(得分:2)

尝试转换日期格式的常用功能

public static SimpleDateFormat targetFormat = new SimpleDateFormat();
public static SimpleDateFormat originalFormat = new SimpleDateFormat();
public static String formattedDate = "";

public static String getFormattedDate(String targetPattern,
                                      String existingPattern, String existingValue) {
    formattedDate = existingValue;
    targetFormat.applyPattern(targetPattern);
    DateFormatSymbols symbols = new DateFormatSymbols(Locale.getDefault());
    symbols.setAmPmStrings(new String[] { "AM", "PM" });
    targetFormat.setDateFormatSymbols(symbols);
    originalFormat.applyPattern(existingPattern);
    try {
        formattedDate = targetFormat.format(originalFormat
                .parse(existingValue));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return formattedDate;
}

并使用

 String txtdate = getFormattedDate("dd MMMM yyyy","yyyy-MM-dd","2016-06-03");

答案 1 :(得分:1)

您可能希望使用DateFormat而不是SimpleDateFormat:

//Should print something like June 27, 2016
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.ENGLISH);
String format = df.format(yourDate);

答案 2 :(得分:1)

 public String convert_date(String date)
 {
     DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
     java.util.Date d = null;
 try 
 {
     d = df.parse(date);
 } catch (ParseException e)
 {
     e.printStackTrace();
 }
     df = new SimpleDateFormat("dd MMMM, yyyy");
     return   df.format(d);
 }

**String convertedDate = convert_date("2016-06-25");**

答案 3 :(得分:0)

我已经从这里编辑了你的代码副本,现在工作正常

SimpleDateFormat formatter = new SimpleDateFormat("dd MMMM yyyy", Locale.ENGLISH);
        String newFormat = null;
        try {
            newFormat = formatter.format(new SimpleDateFormat("yyyy-MM-dd").parse("2016-06-03"));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Log.d("Date", ": " + newFormat); 

<强>输出

D/Date: : 03 June 2016

答案 4 :(得分:0)

如果从android中的日历中获取月份,通常会得到月份编号而不是名称。但是如果你想得到它的名字,你可以通过两种方式获得它。

  1. 获取全名 -

    Calendar cal = Calendar.getInstance();
    SimpleDateFormat month_date = new SimpleDateFormat("MMMM");
    String month_name = month_date.format(cal.getTime());
    
  2. 获取月份的简称 -

    Calendar cal = Calendar.getInstance();
    SimpleDateFormat month_date = new SimpleDateFormat("MMM");
    String month_name = month_date.format(cal.getTime());
    
  3. 有关SimpleDateFormat类的详细信息,请查看 - Android Docs